程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。 例如:a数组中的值为 则返回主程序后a数组中的值应为 注意:部分源程序存在文件PROGI

admin2013-04-02  25

问题 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。
    例如:a数组中的值为
    则返回主程序后a数组中的值应为
    注意:部分源程序存在文件PROGI.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 5
void fun (int a[][N])
{
}
NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *rf, *wf ;
  int i, j, 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]);
  fun(a);
  for (i = 0; i < 5; i++) {
    for (j = 0; j < 5; j++) fprintf(wf, "%4d", a[j]);
    fprintf(wf, "\n");
  }
  fclose(rf);
  fclose(wf);
}
main ()
{int a[N][N], i, j;
   printf("***** The array *****\n");
   for (i =0; i   {for (j =0; j     {a[j] = rand()%10; printf("%4d", a[j]);}
        printf("\n");
   }
   fun (a);
   printf ("THE RESULT\n");
   for (i =0; i   {for (j =0; j[j]);
      printf("\n");
   }
   NONO();
}

选项

答案{ int i, j; for(i=0; i
解析 进入fun函数,根据前面的分析:
(1)对二维数组常用双重循环结构来处理:外层循环控制二维数组的行处理,内层循环控制二维数组的列处理。
(2)左下半三角元素的下标特点是列下标小于或等于行下标,即j<=i。
(3)依次访问二维数组,把符合以上条件的元素的值赋0。
该题是对矩阵操作的考查。
转载请注明原文地址:https://jikaoti.com/ti/5in0FFFM
0

相关试题推荐
最新回复(0)