C语言 为什么运行结果是min=0,row=2,col=3

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:37:43
#include<stdio.h>
void main()
{
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,3,0}};
int i,j,row,col,min;
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]<a[0][0])
{min=a[i][j];row=i;col=j;}
printf("min=%d,row=%d,col=%d\n",min,row,col);
#include<stdio.h>
void main()
{
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,3,0}};
int i,j,row,col,min;
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]<a[0][0])
{min=a[i][j];row=i;col=j;}
printf("min=%d,row=%d,col=%d\n",min,row,col);
}
为什么不是min=-2,row=2,col=1呢

是if语句中的条件不对。应该初始化int min=a[0][0];然后把循环的if改成 if(a[i][j]<min); 不然每次都和第一个数比较,而不是和最小值比较。

if(a[i][j]<a[0][0]);应改为if(a[i][j]<min);