M082

02-程序修改题 软件154 范金瑞 519浏览

所属年份: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的格式,被赋值的变量前要加上取地址符”&”。