*下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。 请改正函数fun中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:*/ #include <stdio.h> void fun() { int a[3][3],sum; int i,j; /**********ERROR**********/ sum=1; for (i=0;i<3;i++) { for (j=0;j<3;j++) /**********ERROR**********/ scanf("%d",a[i][j]); } for(i=0;i<3;i++) sum=sum+a[i][i]; printf("Sum=%d\n",sum); } int main() { fun(); return 0; }
时间: 2023-07-23 10:28:05 浏览: 100
C语言程序设计-在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和
5星 · 资源好评率100%
修改后的程序如下:
```c
#include <stdio.h>
void fun() {
int a[3][3],sum=0; // 将sum的初值设为0
int i,j;
for (i=0;i<3;i++) {
for (j=0;j<3;j++) {
scanf("%d",&a[i][j]); // &符号缺失,应该取地址
}
}
for(i=0;i<3;i++) {
sum=sum+a[i][i];
}
printf("Sum=%d\n",sum);
}
int main() {
fun();
return 0;
}
```
主要错误有两个:
1. 变量 `sum` 的初值应该设为0,而不是1。
2. 在输入矩阵元素时,应该使用 `&` 取地址符号。
阅读全文