求矩阵的最大数,及其行,列数。这样写为什么不正确?

int a[3][4],i,j,h,l,max;
for(i=0;i<3;i++)

{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
max=a[i][j];
l=j+1;
h=l+1;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{

    if(a[i][j+1]>a[i][j])

    {
         max=a[i][j+1];
         h=i+1;
         l=j+2;
    }

}

}
printf("最大:%3d行:%3d列:%3d",max,h,l);
system("pause");

图片说明

老显示的是最后一个数。为什么?

 if(a[i][j]>a[h-1][l-1])

    {
         h=i+1;
         l=j+1;
                max=a[i][j];
    }


单步调试,看max变量值得变化

if(a[i][j]>max)

{
     h=i+1;
     l=j+1;
     max=a[i][j];
}

java代码这么写 你看看

int[][] a ={{3,2,9,66},{10,55,901,43},{28,24,23,29}};
int i, j = 0, h = 1, l = 1, max = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++){
System.out.println(a[i][j]);

        }
    }
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            if (a[i][j + 1] > max){
            max = a[i][j + 1];
            }
            h = i + 1;
            l = j + 2;
        }

    }
    System.out.println("最大:" + max + "行:" + h + "列:" + l);
    System.out.println("pause");