C语言找出二维数组的最小值,并输出其下标

来源:百度知道 编辑:UC知道 时间:2024/06/02 06:36:24
我是这样编的,可是每次都输不出最小的数。请问错在哪里?
#include<stdio.h>
void main()
{
int i,j,min,a[2][3],r,c;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
min=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(min<a[i][j])
{
min=a[i][j];
r=i;
c=j;
}
printf("min=%d,a[%d][%d]\n",min,r,c);
}

首先判断的时候大小符号搞错了,应该是发现有比min找的就交换所以是min>a[i][j]还有,输入结束,min=a[0][0]后面加c=0;r=0;不然最小值在0,0就不能输出坐标了

#include "stdio.h"
main()
{
int i,j,row,col,m,arr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};
m=arr[0][0];
for(i=0;i<3;i++)
for (j=0;j<3;j++)
if (arr[i][j]<m) { m=arr[i][j];row=i;col=j;}
printf("%d,%d,%d\n",m,row,col);

}

if(min<a[i][j])
{
min=a[i][j];
r=i;
c=j;
}
这儿的判断条件错了
改成这样应该就没问题了
if(min>a[i][j])
{
min=a[i][j];
r=i;
c=j;
}

把if(min<a[i][j])变成if(min>a[i][j])就对了,应为你想要得到最小值,如果有一个数比最小值还小,那他就是最小值,明白吗???