镇~海 2023-03-12 17:11 采纳率: 0%
浏览 17

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。
按任意键关闭此窗口. . .

有无老司机解答一下。

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2023-03-12 17:15
    关注

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

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月12日

悬赏问题

  • ¥100 复现论文:matlab仿真代码编写
  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题