drawingourmoments 2021-11-08 23:44 采纳率: 100%
浏览 29
已结题

C语言初学者遇上灵异事件 同一个代码在Dev c++和codeblock运行的结果不一样!


#include <stdio.h>
int main()
{
    int a[20],i,t1,t2,k[20],n;
    for(i=1;i<=20;i++)
    {
        scanf("%d",&n);
        a[i]=n;
        k[i]=i;
    }
    for(int q=1;q<=19;q++)
    {
        for(int j=q+1;j<=20;j++)
        {
            if(a[q]>a[j])
            {
                t1=a[q];
                a[q]=a[j];
                a[j]=t1;
                t2=k[q];
                k[q]=k[j];
                k[j]=t2;
            }
        }
    }
    for(int p=1;p<=20;p++)
    {
        printf("%d-[%d] ",a[p],k[p]);
    }
    return 0;
}

输入 9 8 7 6 5 4 3 2 1 0 85 74 125 963 258 741 456 789 321 2222
Dev c++的结果和我预计的一样
0-[10] 1-[9] 2-[8] 3-[7] 4-[6] 5-[5] 6-[4] 7-[3] 8-[2] 9-[1] 74-[12] 85-[11] 125-[13] 258-[15] 321-[19] 456-[17] 741-[16] 789-[18] 963-[14] 2222-[20]
而codeblock却是这样
0-[10] 1-[9] 2-[8] 3-[7] 4-[6] 4-[20] 3-[5] 2-[4] 1-[3] 2-[2] 11-[1] 12-[12] 11-[11] 14-[13] 17-[15] 16-[19] 18-[17] 14-[16] 18-[18] 14-[14]

为什么呀很奇怪 希望各位xd帮忙看看!感谢!

  • 写回答

1条回答 默认 最新

  • aabyte 2021-11-08 23:48
    关注

    把数组a和k的长度改成21,不然第9行和第10行还有后面的若干个地方已经数组越界了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月8日

悬赏问题

  • ¥500 求华为P30PRO手机硬盘数据恢复
  • ¥15 关于#vscode#的问题:ESP32开发板对接MQTT实现小灯泡的开关
  • ¥15 TMC2209串口模式下读取不到寄存器的值串口助手蓝色字体是发过去的消息,绿色字体是收到的消息,第二行发送读取寄存器的指令但是没有读取到寄存器的值串口助手如下图:接线如下图,如何解决?
  • ¥15 高通安卓11提取完整线刷包软件,或者优博讯dt50顺丰刷机包
  • ¥20 C,有个译码器,换了信道就跑不出原来数据
  • ¥15 MIMIC数据库安装问题
  • ¥60 基于JTag协议开发Fpga下载器上位机,哪位大🐂有偿指导?
  • ¥20 全书网Java爬取数据
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题