给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 1 #includ

admin2019-04-04  35

问题 给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  #define M 5
3  /**********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[j]);
11    printf(’’\n’’);
12    }
13    for(i=0  ;  i<n;  i++)
14  sum+=xx+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,intxx[][])"改为“int fun(int n,xx[][M])”。
(2)fun函数中n是int型,C语言输出语句中整型应该是%d,所以第二个标识下“printf(’’%f’’,xx[j]);”应该改为“printf(]]%4d,xx[j);”。
转载请注明原文地址:https://kaotiyun.com/show/lnRp777K
0

最新回复(0)