帮我改错 #include <stdio.h> int main(void) { int max,i,j,r,c; int a[3][4]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) scanf("%d",&a[i][j]); /***********found***********/ max=12; for(i=0;i<=2;i++) for(j=0;j<=3;j++) /***********found***********/ if(a[i][j]<max) { max= a[i][j]; r=i; c=j; } printf("max=%d,row =%d,colum=%d \n",max,r,c); return 0; }
时间: 2023-07-23 22:24:16 浏览: 86
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这段代码的问题是变量名以及数组下标的错误。应该将变量名max改为min,因为代码是用来求最小值的,而不是最大值。同时,数组下标应该从0开始而不是从1开始,因为数组的下标是从0开始的,最大下标是数组长度减1。
改正后的代码如下:
```
#include <stdio.h>
int main(void) {
int min, i, j, r, c;
int a[3][4];
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &a[i][j]);
}
}
min = a[0][0];
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
if (a[i][j] < min) {
min = a[i][j];
r = i;
c = j;
}
}
}
printf("min=%d,row=%d,column=%d\n", min, r, c);
return 0;
}
```
这样就可以正确求出二维数组中的最小值及其所在位置了。
阅读全文