问答题 给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构! #include #define M 5 int fun(int nr int xx[] []) { int i,j,sum=0; printf("/nThe %d x %d matrix:/n", printf ("/n") ; } sum += xx [i] [i]+xx [i] [n—i—l] ; return (sum) ; } main () { int aa[M] [M]={ {1,2,3,4,5}, {4,3,2,1,0 },{ 6,7,8,9,0},t 9,8,7,6,5}, printf ("/nThe sum of all elements on 2 diagnals is %d.",fun (M, aa)) ; }
【正确答案】正确答案:(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是mt型,C语言输出语句中整型应该是%d,所以第二个标识下“printf("%f",xx[i][j]);“应该改为“printf("%4d",xx[i][j]);”。