c语言代码gcc平台与vs平台输出结果不同问题。

为什么c语言代码gcc平台与VS平台输出结果不同。
代码如下

int main()
{
    int arr[3][4]; //= {20,5,7,123,567,0,78,600,61,78,90,124};
    int max = arr[0][0];
    int cow;
    int col;
    int i;
    int j;
    printf("请输入:");
    
    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            printf("%d \t",arr[i][j]);
        }
        printf("\n");
    }
    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            if(max < arr[i][j])
            {
                max = arr[i][j];
                cow = i;
                col = j;
            }
        }
    }
    printf("第%d行第%d列的最大数为%d",cow+1,col+1,max);
    return 0;
}

两个平台结果
gcc平台

E:\code>a.exe
请输入:1 5 78 99 3 16 25 89 20 18 30 7
1       5       78      99
3       16      25      89
20      18      30      7
第17行第1列的最大数为4200112
E:\code>

VS平台

请输入:1 5 78 99 3 16 25 89 20 18 30 7
1       5       78      99
3       16      25      89
20      18      30      7
第1行第4列的最大数为99
E:\dama\test-3-12\Debug\test-3-12.exe (进程 8256)已退出,代码为 0。
按任意键关闭此窗口. . .

有无老司机解答一下。

cow和col初始化为0
另外,int max = arr[0][0]; 放到18行,你得先输入arr数组值,然后这个max才赋值正确啊。前面还没赋值呢,那么max就是个随机值了
由于有的编译器会给数组自动初始化为0,有的不会,所以会有不同的结果