题目
下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[] [N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。 例如,若m的值为2,a数组中的值为:则返回主程序后a数组中的值应为: 注意:部分源程序在文件PROG1.C中。 请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < stdlib.h >#include < string.h >#define N 5void fun (int a[] [N], int m) ( )main ( ) ( int a[N][N],m, i, j; FILE *out; printf (“ *** The array *** n”) ;for(i=2 ; i < n;i++) A=1.0/(1+A);return A;for(i=0;i < N;i++) {for(j=0;j < N;j++) {a[i][j]=rand( )%2 0; printf(“%4d”,al i][j]); ) printf (“n”) ; } m = rand ( ) % 4; printf ( “m = %4dn”,m) ; fun (a,m) ; printf (“THE RESULTn”) ;printf (“n”) ; }/*********found*********/ out = fopen (“out.dat”, “w”) ; for (1 =0 f i < N;i++)(for(j=0;j < N;j++) fprintf(out,”%4d”,a[i][j]); fun (a,8) ; fprintf (out, “%4d”,a[i] [ j ] ) ;fprintf (out, “n”) ; ) fclose (out) ;/*********found*********/}
下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[] [N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。 例如,若m的值为2,a数组中的值为:则返回主程序后a数组中的值应为: 注意:部分源程序在文件PROG1.C中。 请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < stdlib.h >#include < string.h >#define N 5void fun (int a[] [N], int m) { }main ( ) { int a[N][N],m, i, j; FILE *out; printf (“ *** The array *** \n”) ;for(i=2 ; i < n;i++) A=1.0/(1+A);return A;for(i=0;i < N;i++) {for(j=0;j < N;j++) {a[i][j]=rand( )%2 0; printf(“%4d”,al i][j]); } printf (“\n”) ; } m = rand ( ) % 4; printf ( “m = %4d\n”,m) ; fun (a,m) ; printf (“THE RESULT\n”) ;printf (“\n”) ; }/*********found*********/ out = fopen (“out.dat”, “w”) ; for (1 =0 f i < N;i++){for(j=0;j < N;j++) fprintf(out,”%4d”,a[i][j]); fun (a,8) ; fprintf (out, “%4d”,a[i] [ j ] ) ;fprintf (out, “\n”) ; } fclose (out) ;/*********found*********/}
题目解答
答案
正确答案:void fun (int a[] [N], int m){int i,j;for(j=0;j < N;j++)for(i=0;i < =j;i++)a[i][j]=a[i][j]*m;/*右上半三角元素中的值乘以m*/}解析:本程序实现将矩阵中右上半三角元素中的值乘以m,使用循环语句遍历数组元素,第1个循环用于控制行坐标,第2个循环用于控制列下标。
解析
步骤 1:定义函数fun
函数fun(int a[][N], int m)的目的是将二维数组a的右上半三角元素中的值乘以m。右上半三角元素是指那些行下标小于等于列下标的元素。
步骤 2:遍历数组元素
使用两个嵌套的for循环遍历数组a的元素。外层循环控制行下标i,内层循环控制列下标j。当i <= j时,表示当前元素位于右上半三角中。
步骤 3:乘以m
对于位于右上半三角中的元素a[i][j],将其值乘以m,并将结果赋值回a[i][j]。
函数fun(int a[][N], int m)的目的是将二维数组a的右上半三角元素中的值乘以m。右上半三角元素是指那些行下标小于等于列下标的元素。
步骤 2:遍历数组元素
使用两个嵌套的for循环遍历数组a的元素。外层循环控制行下标i,内层循环控制列下标j。当i <= j时,表示当前元素位于右上半三角中。
步骤 3:乘以m
对于位于右上半三角中的元素a[i][j],将其值乘以m,并将结果赋值回a[i][j]。