C语言求3*4矩阵中的最大值 请高手讲解!!!

#include <stdio.h>
void main()
{
int i,j, row=0,colum=0,max;
static int matrix[3][4]={{2,5,-61,2},{6,-12,34,52},{-23,1,-65,6}};
max=matrix[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(matrix[i][j]>max)
{
max=matrix[i][j];
row=i+1;
colum=j+1;
}
printf("the maxium is %d.\n",max);
printf("It'sin the row %d and colum %d.\n",row,colum);
}
这当中把矩阵的第一个数字赋给max
后面又有如果某无素大于max,则记录此无素的信息,我的疑问是大于max的不指一个,为什么又会只输出一个最大的,为什么不会是只要大于max的全部输出来呢?

因为里面有一个二层循环啊~找到大于max的值就会将原来小的覆盖掉~
具体执行时max的值的变化规律为:
2,5,6,34,52
循环完成后才输出52.
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-06-01
因为max=matrix[i][j]; 也就是把当前最大给max 所以肯定能保证max中永远是当前最大的元素
相似回答
大家正在搜