Prog1.c 23 【程序改错】 5 题目:主函数main()调用fun()函数,其中fun函数的功能是:计算二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为:135 7 9299946999813570则函数值1+3+5+7+9+4+8+0+7+5+3+1+6+2-61. 12 下面给定的程序存在错误,请改正。 I 注意:不得增行或删行,也不得更改程序的结构。 2021#include <stdio.h>****FOUND*********int fun (int a [4] []){24int i,j,sum=0;for (i=0;i <4ji++)for (j-0;j <5;j++)**FOUND***********/if (i--08&j==088i==388j==4)FOUND***********/sum=a [i] [j];return sum;29303132333435日{36int aa [4] [5]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};37int i,j,y;38printf ("The original data is: \n") ;39for (i=0;i <4;i++)40{白414243444546474for (j=0;j <5jj++)printf ("X6d",aa [i] [j]);printf ("\n") ;
时间: 2024-01-17 19:39:46 浏览: 140
以下是修改后的代码:
```
#include <stdio.h>
int fun(int a[4][5]) {
int i, j, sum = 0;
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
if (i == 0 || i == 3 || j == 0 || j == 4) {
sum += a[i][j];
}
}
}
return sum - 61;
}
int main() {
int aa[4][5] = {{1, 3, 5, 7, 9}, {2, 9, 9, 9, 4}, {6, 9, 9, 9, 8}, {1, 3, 5, 7, 0}};
int i, j, y;
printf("The original data is: \n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
printf("%d ", aa[i][j]);
}
printf("\n");
}
y = fun(aa);
printf("The result is: %d\n", y);
return 0;
}
```
修改说明:
1. 在fun函数中,修改了if语句的条件,使其只计算二维数组周边的元素之和,同时将最后的sum - 61作为函数返回值。
2. 在主函数中,修改了输出二维数组的方式,使其按照题目要求输出。同时调用fun函数并输出结果。
阅读全文