c,int i,j; int *(*b[i]+j);
时间: 2024-05-28 20:12:13 浏览: 33
这段代码定义了一个名为 `b` 的数组,它有 `i` 个元素,每个元素都是一个指向指针的指针。每个指针指向一个 `int` 类型的值。
具体来说,每个 `b[i]` 都是一个指向指针的指针,它指向一个 `int` 类型的值。而 `b[i]+j` 表示指向 `b[i]` 的第 `j` 个元素的指针,即 `b[i]` 数组中的第 `j` 个指针。最终,`*(*b[i]+j)` 表示获取指向 `b[i]` 数组中第 `j` 个指针所指向的 `int` 类型的值。
需要注意的是,这段代码存在问题。在定义数组时,`i` 的值应该是一个常量表达式,而不是一个变量。因为 C 语言需要在编译时确定数组的大小,而变量的值只有在运行时才能确定,因此不能作为数组大小的表达式。
相关问题
7、使用二重循环编程,绘制如下图形:++++*****A++++****B++++***C++++**D++++*E
7、使用二重循环编程,绘制如下图形:++++*****A++++****B++++***C++++**D++++*E?
```
#include <stdio.h>
int main()
{
int i, j;
char ch = 'A'; for (i = 5; i >= 1; i--)
{
for (j = 1; j <= i; j++)
printf("+");
for (j = 1; j <= 6 - i; j++)
printf("*");
printf("%c", ch++);
for (j = 1; j <= 6 - i; j++)
printf("*");
for (j = 1; j <= i; j++)
printf("+");
printf("\n");
}
return 0;
}
```
帮我修改这段代码#include<stdio.h> int main() { int a[5][4] = {0}; float b[5] = {0.f}; int *p[5] = {a[0], a[1], a[2], a[3], a[4]}; int sum[5] = {0}; int *p1 = sum; float *q = b, ave; int i, j; for(i = 0; i < 5; i++) { for(j = 0; j < 4; j++) { scanf("%d", *(p[i] + j)); *(p1 + i) += *(p[i] + j); } } for(i = 0; i < 5; i++) { *(q + i) = *(p1 + i) / 4; printf("%.2f ", (q + i)); } return 0; }
修改后的代码如下:
```c
#include <stdio.h>
int main() {
int a[5][4] = {0};
float b[5] = {0.f};
int *p[5] = {a[0], a[1], a[2], a[3], a[4]};
int sum[5] = {0};
int *p1 = sum;
float *q = b;
int i, j;
for (i = 0; i < 5; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", *(p + i) + j);
*(p1 + i) += *(*(p + i) + j);
}
}
for (i = 0; i < 5; i++) {
*(q + i) = (float) *(p1 + i) / 4;
printf("%.2f ", *(q + i));
}
return 0;
}
```
主要修改如下:
1. 在第一个 for 循环中,修改了 `*(p[i] + j)` 为 `*(*(p + i) + j)`,表示通过指针数组 `p` 访问二维数组 `a` 的元素,这样可以使代码更加简洁,避免使用指针数组下标的方式。
2. 在第二个 for 循环中,修改了 `(q + i)` 为 `*(q + i)`,表示访问指针数组 `q` 中第 `i` 个元素的值,同时将 `(q + i)` 修改为 `*(q + i)`,表示访问指针数组 `q` 中第 `i` 个元素的地址,这样可以正确打印出平均值。同时在计算平均分时需要将分数转化为浮点数,所以需要将 `(float)` 强制类型转换放在除法运算符前面。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)