下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[] [N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。 例如,若m的值为2,a数组中的值为: 则返回主程序后a数组中的值应为: 注意

admin2017-09-23  29

问题 下列程序定义了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 5
void 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[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[j]);
  fun (a,8) ;
  fprintf (out, "%4d",a [ 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个循环用于控制列下标。
转载请注明原文地址:https://jikaoti.com/ti/0Za0FFFM
0

最新回复(0)