为什么结果出来行号列号都多了一呢

img

img

for循环结束后i,j一定都在最后
你要用另外两个变量存这个位置才行

修改如下,供参考对照:

#include <stdio.h>
int main()
{
   int a[3][4];
   int i,j;
   for(i=0;i < 3; i++){
       for(j=0;j < 4;j++){
           scanf("%d",&a[i][j]);
       }
   }
   int max=a[0][0],max_i=0,max_j=0;
   for(i=0;i < 3;i++){
       for(j=0;j < 4;j++){
           if(a[i][j] > max){
              max=a[i][j];
              max_i = i;
              max_j = j;
           }
       }
   }
   printf("最大值是%d\n",max);
   printf("行号是%d\n",max_i+1);
   printf("列号是%d\n",max_j+1);
   return 0;
}