下列给定程序中,函数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]。