#include <stdio.h> void fun( int (* b )[7], int * a[10][7] , 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<
时间: 2024-03-10 21:47:22 浏览: 58
这个代码没有完成,最后有一行没有写完整。不过从代码片段来看,这个程序应该是要求输入一个二维数组,然后调用 `fun` 函数计算每列的和,并将结果存储在一个一维数组 `b` 中。
下面是一个可能的实现:
```c
#include <stdio.h>
void fun(int (*b)[7], int *a[10][7], int n) {
int i, j;
for (j = 0; j < 7; j++) {
b[j] = 0; // 初始化每列的和为0
for (i = 0; i < n; i++) {
b[j] += *(*(a + i) + j); // 累加每列的元素
}
}
}
int main() {
int i, k, n, a[10][7], b[7] = {0};
int *p[10][7];
for (i = 0; i < 10; i++)
for (k = 0; k < 7; k++)
p[i][k] = &a[i][k]; // 指针数组存储每个元素的地址
scanf("%d", &n);
for (i = 0; i < n; i++)
for (k = 0; k < 7; k++)
scanf("%d", &a[i][k]);
fun(&b, p, n);
for (i = 0; i < 7; i++)
printf("%d ", b[i]); // 输出每列的和
printf("\n");
return 0;
}
```
其中,`p` 是一个指针数组,存储每个元素的地址,便于在 `fun` 函数中访问二维数组的每个元素。调用该函数可以如下:
```c
int main() {
int i, k, n, a[10][7], b[7] = {0};
int *p[10][7];
for (i = 0; i < 10; i++)
for (k = 0; k < 7; k++)
p[i][k] = &a[i][k]; // 指针数组存储每个元素的地址
scanf("%d", &n);
for (i = 0; i < n; i++)
for (k = 0; k < 7; k++)
scanf("%d", &a[i][k]);
fun(&b, p, n);
for (i = 0; i < 7; i++)
printf("%d ", b[i]); // 输出每列的和
printf("\n");
return 0;
}
```
以上代码可以求出一个二维数组各列之和,并输出结果。
阅读全文