填空题 请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define N 20 void fun({{U}} 【1】 {{/U}}) { int i j; int t; for(i=0;i<n;i++) for(j=0;j<n;j++) if({{U}} 【2】 {{/U}}) b[i]=a[i][j]; for(i=0;i<n;i++) { for(j=0;i<n;j++) if({{U}} 【3】 {{/U}}) { t=b[i]; b[i]=b[j]; b[j]=t; } } } main() { int a[N][N]; int b[N]; int n; int i,j; clrscr(); printf("*****Input the dimension of array N*****/n"); scanf("%d",&n); printf("*****The array *****/n"); for(i=0;i<n;i++) { for(j=0;i<n;j++) { a[i][j]=rand()%20; while(a[i][j]==0) a[i][j]=rand()%30; printf("%4d",a[i][j]); } printf("/n/n"); } for(i=0;i<n;i++) b[i]=0; fun(a,b,n); printf("***** THE RESULT *****/n"); for(i=0;i<n;i++) printf("%d",b[i]); }
  • 1、
【正确答案】 1、[1] int a[][N],int b[],int n [2] b[i]<a[i][j] [3] b[i]<b[j]    
【答案解析】[解析] 填空1:根据主函数main()调用函数fun()的格式,可以知道函数fun()有3个参数,第一个参数是N×N整型二维数组,第二个参数是整型—维数组,第三个参数是整型变量。填空2:数组元素b[i]保存第i行的最大值,通过循环将第i行的各元素与b[i]进行比较,如果大于b[i],则将这个数赋给b[i].填空3:通过for循环嵌套,将数组b中的数按从小到大的顺序排列,依次将各元素与所有元素进行比较,如果有一个元素比当前元素大,就借助第三个变量交换这两个元素,最终使第一个元素保存数组中最小的数,最后一个元素保存数组中最大的数。