给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 10 6 3 5

admin2013-09-15  37

问题 给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
  例如,有下列矩阵:
    1    2    13    4
    7    8    10    6
    3    5     9    7
    程序执行结果为:find:a[2][2]=9
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
#include  <stdio.h>
#define M 3
#define N 4
void fun(int(*a)[N])
(  int i=0,j,find=0,rmax,c,k;
  while((i<M)&&(!find))
  {  rmax=a[0];c=0;
     for(j=1;j<N;j++)
       if(rmax<a[j])  {
/**********found**********/
    rmax=a[j];c=___1___;)
    find=1;k=0;
    while(k<M && find)  {
/**********found**********/
      if(k!=i && a[k][c]<=rmax)find=___2___;
      k++;
    }
    if(find)printf("find:a[%d][%d]=%d\n",i,c,a[c]);
/**********found**********/
     ___3___;
    }
    if(!find)printf("not found!\n");
  }
  main()
  {  int x[M][N],i,j;
   printf("Enter number for array:\n");
   for(i=0;  i<M;  i++)
    for(j=0;j<N;j++)  scanf("%d",  &x[j]);
   printf("The ar ray:\n");
   for(i=0;i<M;i++)
   {  for(j=0;j<N;j++)  printf("%3d",x[j]);
      printf("\n\n");
   }
   fun(x);
}

选项

答案(1)j (2)0 (3)i++

解析 第一空:“rmax=a[j];c=___1___;}”ramx存放行上最大值,根据下面一个循环体内“if(k!=i&&a[k][c]<=rmax)”可知,c存放rmax所在的列的位置,故第一空处应为“j”。
    第二空:“if(k!-i&&a[k][c]<=rmax)  find=___2___;”如果列上的元素a[k][c]比rmax还小,说明rmax不是列上最小值,那么标识变量find应该为假,下次就无须进入while(k<M&&find)循环进行比较,所以第二空处应为“0”。
    第三空:第三空处是外循环变量i自增,下一次进入循环的时候在下一行里面继续寻找行上最大、列上最小的元素,故第三空应为“i++”。
转载请注明原文地址:https://jikaoti.com/ti/l1n0FFFM
0

最新回复(0)