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

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日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加