所属年份:2011.3;2011.9
下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h> void fun() { int a[3][3],sum; int i,j; /*************found**************/ sum=1; for (i=0; i<3; i++) { for (j=0; j<3; j++) /*************found**************/ scanf("%d",a[i][j]); } for(i=0; i<3; i++) sum=sum+a[i][i]; printf("Sum=%d\n",sum); } void main() { fun(); }
【参考答案】
(1)sum=0; (2)scanf("%d",&a[i][j]);
【解题思路】
该题考查对循环语句的掌握和对数组概念的理解。本题的解题思路为:先从键盘输入一个3×3矩阵,然后循环累加,执行循环语句中的sum=sum+a[i][i];。因为变量sum用来存放累加后的结果,所以应对其初始化为0。第二处错误考查标准输入函数scanf的格式,被赋值的变量前要加上取地址符”&”。