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

我是这样编的,可是每次都输不出最小的数。请问错在哪里?
#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就不能输出坐标了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-02
你定义的是一个2*2数组,里面只能储存4个数,当然输出结果为7..也就是说后面的数被忽略了,当你数入已经完毕,回车后就自然执行下一步,这就是你输入六个数后就停止的原因,你是不是把它当成是个3*3的数组了..
第2个回答  2009-11-25
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;
}
第3个回答  2009-11-25
#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);

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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网