问答题 给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define M 53 /**********found**********/4 int fun(int n,int xx[][])5 { int i,j,sum=0;6 printf(''\nThe%d x%d matrix:\n'', M, M);7 for(i=0 ; i<M;i++)8 { for(j=0;j<M;j++)9 /**********found**********/10 printf(''%f'',xx[i][j]);11 printf(''\n'');12 }13 for(i=0;i<n;i++)14 sum +=xx[i][i]+xx[i][n-i-1];15 return(sum);16 }17 main()18 { int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};19 printf(''\nThe sum of all elements on 2 diagnals is%d.'',fun(M,aa));20 }
【正确答案】正确答案:(1)int fun(int n,int xx[][M]) (2)printf(''%4d'',xx[i][j]);
【答案解析】解析:函数的功能是求两条对角线上各元素之和。 (1)第一个标识下fun函数的定义中对于二二维数组的定义在原题中并没有给出空间,所以将“int fun(int n,int xx[][])”改为“int fun(int n,int xx[][M])”。(2)fun函数中n是int型,C语言输出语句中整型应该是%d,所以第二个标识下“printf(''%f'',xX[i][j]);”应该改为“printf(''%4d",xx[i][i]);”。