#include<stdio.h> int fun(int *a); int main(void) { int sum=0; int a[3][4]= {1,3,5,7,9,11,13,17,19,21,23,25}; sum=fun(a); printf("%d",sum); return 0; } int fun(int *a) { int sum=0,i,j; for(i=0; i<3; i++) { for(j=0; j<4; j++) { sum+=a[i][j]; } } return sum; }检查程序
时间: 2024-01-07 11:04:42 浏览: 209
#include<stdio.h>
程序存在一个问题,即函数 `fun` 的声明和定义不一致。在 `main` 函数中调用 `fun` 函数时,传递的参数类型应该是 `int (*)[4]`,而不是 `int *`。
以下是修改后的程序:
```c
#include <stdio.h>
int fun(int (*a)[4]);
int main(void) {
int sum = 0;
int a[3][4] = {{1, 3, 5, 7}, {9, 11, 13, 17}, {19, 21, 23, 25}};
sum = fun(a);
printf("%d", sum);
return 0;
}
int fun(int (*a)[4]) {
int sum = 0, i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
sum += a[i][j];
}
}
return sum;
}
```
修改后的程序中,`fun` 函数的参数类型被修改为 `int (*a)[4]`,表示传递的是一个指向包含 4 个 `int` 元素的数组的指针。在函数中,使用 `a[i][j]` 访问数组元素即可。
阅读全文