#include <stdio.h> void fun( int (* )[7], int * , int n); int main() { int i, k,n,a[10][7],b[7]={0}; scanf("%d",&n); for(i=0;i<n;i++) for(k=0;k<7;k++) scanf("%d",&a[i][k]); fun(a,b,n); for(i=0;i<7;i++) printf("%d ",b[i]); return 0; } void fun( int (* )[7], int * , int n) { int i,j; for(j=0;j<7;j++) { for(i=0;i<n;i++) { *result=* +*(* +j); } ; } }
时间: 2023-11-28 16:51:29 浏览: 97
#include <stdio.h>
4星 · 用户满意度95%
这段代码有很多问题,包括语法错误、变量未定义、函数参数不匹配等等。以下是修正后的代码:
```c
#include <stdio.h>
void fun(int (*arr)[7], int *result, int n);
int main() {
int i, k, n, a[10][7], b[7]={0};
scanf("%d", &n);
for(i=0; i<n; i++) {
for(k=0; k<7; k++) {
scanf("%d", &a[i][k]);
}
}
fun(a, b, n);
for(i=0; i<7; i++) {
printf("%d ", b[i]);
}
return 0;
}
void fun(int (*arr)[7], int *result, int n) {
int i,j;
for(j=0; j<7; j++) {
for(i=0; i<n; i++) {
*(result+j) += *(*(arr+i)+j);
}
}
}
```
这段代码的功能是将一个二维数组的每一列求和,并将结果存入一个一维数组中。修正后的代码中,`fun`函数的参数类型被修改为了 `int (*arr)[7], int *result, int n`,其中 `arr` 是一个指向含有 7 个元素的整型数组的指针,`result` 是一个指向整型变量的指针,`n` 是一个整型变量。在 `fun` 函数中,我们可以通过 `*(*(arr+i)+j)` 访问二维数组的每一个元素,通过 `*(result+j)` 访问一维数组的每一个元素。
阅读全文