问题
填空题
下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
int fun()
int a[3][3],mu1;
int i,j;
mu1=l;
for (i=0;i<3;i++)
/*************found*************/
for(i=0;i<3;j++)
scanf(“%d”,&a[i][j]);
for(i=0;i<3;i++)
/*************found*************/
mu1=mu1*a[i][j];
printf("Mu1=%d\n",mu1);
main()
fun();
答案
参考答案:(1)错误:for(i=0;j<3;j++) 正确:for(j=0;j<3;j++)
(2) 错误:mu1=mu1*a[i][j]; 正确:mu1=mul*a[i][i];
解析: 错误1:循环结构中,要给变量j赋初值0。错误2:主对角元素的行号和列号相等,所以参加乘法的是a[i][i],而不是a[i][j]。