程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。 例如;若m的值为2,a数组中的值为: 则返回主程序后a数组中的值应为: 注意:部分源程序存在文件PROGl.C文件中

admin2013-03-29  66

问题 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。
    例如;若m的值为2,a数组中的值为:
    则返回主程序后a数组中的值应为:
    注意:部分源程序存在文件PROGl.C文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#iticlude
#include
#define N 5
void fun(int a[][N],int m)
{
}
main()
{  int a[NI[N],m,i,j;void NONO();
  printf("*****The array*****\n"),
  for(i=0;i  {  for(j=0;j    {a[j]=rand()%20;printf
(”%4d”,a[j]);}
    printf(”\n”);
    }
    do m;rand()%10;while(m>=3);
    printf(”m=%4d\n”,m);
    fun(a,m);
    printf(”THE RESULT\n”);
    for(i=0;i    {  for(j=0;j(”%4d”,a[j]);
    printf(”\n”);
    }
    NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函
数,输出数据,关闭文件。  */
  FILE*rf,*wf;
int i,j,n,a[5][5];
  rf=fopen(”in.dat”,”r");
  wf=fopen(”out.dat”,”w”);
  for(i=0;i<5;i++)
  for(j=0;j<5 ; j++)
    fscanf(rf,”%d”,&a[j]);
  fsscanf(rf,”%d”,&n);
  fun(a,n);
  for(i=0;i<5;i++)  {
    for(j=0;j<5;j++)fprintf
(wf,”%4d”,a[j]);
    fprintf(wf,”\n”);
  }
  fclose(rf);
  fclose(wf);
}

选项

答案int i,j ; for(i=0;i
解析 (1)右上半角的元素是行下标小于等于列下标,即“i<=j"包括对角线。
    (2)依次访问二维数组,把符合条件的元素的值乘以m。
转载请注明原文地址:https://kaotiyun.com/show/6WJp777K
0

最新回复(0)