输出二维数组最小值,和最小值的所有位置
从键盘输入一个4行5列二维整数数组的所有元素。输出最小值,
和位置,如果出现多次,输出所有的位置。输入格式:"%d"。
输出格式:"min:%d---row:%d,col:%d\n"(依次输出最小值,
行号,列号;)
例如,输入:4 6 6 2 6
6 9 6 6 8
6 2 6 6 22
2 6 2 6 2
则输出:
min:2---row:0,col:3
min:2---row:2,col:1
min:2---row:3,col:0
min:2---row:3,col:2
min:2---row:3,col:4
int main()
{
int a[4][5];
int i,j;
int min;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
min=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<5;j++)
if(a[i][j]<min)
min=a[i][j];
for(i=0;i<4;i++)
for(j=0;j<5;j++)
if(a[i][j]==min)
printf("min:%d---row:%d,col:%d\n",min,i,j);
return 0;
}
debug记录:
(1)scanf语句要有&!!!
(2)三个大循环,一个输入数据,一个找最小值,一个输出最小值位置。
注意:不能把printf直接放在第二个循环里面,在找最小值的时候输出
原因:如果放在里面,则只要遇到一个比min小的就会被打印,而不是打印最小的,不能起到找出最小值位置的作用,所以必须再用一个循环打印!