当前位置: 代码迷 >> C语言 >> 帮我呀,各位高手大虾~~~(数组)
  详细解决方案

帮我呀,各位高手大虾~~~(数组)

热度:473   发布时间:2005-05-11 15:34:00.0
帮我呀,各位高手大虾~~~(数组)
怎样在一个数组(比如:3*3,5*6)中,找出其中最大的数并输出,如果这个最大的数在数组有多
个(在数组不同位置).哪么怎样输出这个数和分别输出它在数组中的行,列?谢~~~~
搜索更多相关的解决方案: 最大的  

----------------解决方案--------------------------------------------------------
可以用两个变量i和j分别控制数组的行和列,然后用两个for循环就可以遍历整个数组(一般书上都有).将大数存入一个变量max(名字随意),如果后一个数组元素比max大,就将这个元素替换原先的max,这时i和j的的值就分别是数组的行号和列号,也将它们保存起来.等遍历完整个数组,max中的值也就是最大数了.

[此贴子已经被作者于2005-5-12 8:17:14编辑过]



----------------解决方案--------------------------------------------------------
专门定义一个数组,记录最大的数的行列号!再定义一个变量记录最大的数的个数!
----------------解决方案--------------------------------------------------------

#include<stdio.h> #include<conio.h> #define M 3 #define N 3 int a[M][N];

void main( ) { int i,j,k,max; printf("Input the matrix:\n"); for(i=0;i<M;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); max=a[0][0]; for(i=0;i<M;i++) for(j=0;j<N;j++) if(a[i][j]>max) max=a[i][j]; k=0; printf("max=%d\n",max); for(i=0;i<M;i++) for(j=0;j<N;j++) if(a[i][j]==max) { k++; printf("row=%d,col=%d\n",i+1,j+1); } printf("all have %d number be the max.\n",k); }


----------------解决方案--------------------------------------------------------
  相关解决方案