请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define N 20 void fun( 【1】 ) { int i j; int t; for(i=0;i<n;i++)for(j=0;j<n;j++) if( 【2】 )b[i]=a[i][j]; for(i=0;i<n;i++) { for(j=0;i<n;j++) if( 【3】 ) { 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]); }
参考答案:[A] int a[][N],int b[],int n [B] b[i]<a[i][j] [C] 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中的数按从小到大的顺序排列,依次将各元素与所有元素进行比较,如果有一个元素比当前元素大,就借助第三个变量交换这两个元素,最终使第一个元素保存数组中最小的数,最后一个元素保存数组中最大的数。