Li_Chi 2023-03-11 16:21 采纳率: 100%
浏览 40
已结题

C调试与运行结果不一致

写了一个for循环倒序的数组,本来想着试着用不同排序测试其时间,但是发现倒序数组写出来调试结果与运行结果不一致

#include <stdio.h>
#define RANDNUM 30
int main()
{
    int j,k=0;
    int perversion[RANDNUM];
    for(j=RANDNUM;j>0;j--)
    {
        //产生30个倒序的数
        perversion[k]=j;
        printf("%d\n",perversion[k]);
        k++;
    }
    return 0;
}

以下为运行结果

img


再以下为调试结果

img


是因为没有将静态数组全部赋值完毕嘛?

  • 写回答

6条回答 默认 最新

  • Li_Chi 2023-03-11 18:41
    关注
    
    #include <stdio.h>
    #define RANDNUM 30
    int main()
    {
        int j,k=0;
        int perversion[RANDNUM];
        for(j=0;j<RANDNUM;j++)
        {
            //产生30个倒序的数
            perversion[k]=RANDNUM-j;
            printf("%d\n",perversion[k]);
            k++;
        }
        return 0;
    }
    

    代码越界的问题我改了一下 但是运行出来的结果任然不尽人意

    img


    可以看到只是从26开始倒序 而却26-24重复了一次
    我个人设置了临界点 发现26是临界点
    我感觉有没有可能是mingw编译器的问题 我用Visual Studio 2022可以完美运行此代码

    问题已经解决
    反馈:devc++是一个集成开发软件,里面内置了编译器
    因此外界的mingw编译器并不会引起devc++编译结果
    至于调试步骤与编译运行结果不一致是由于dev++软件本身出现了问题
    解决方法:
    1、卸载devc++并删除已配置的文件
    2、在csdn中查找dev++下载方式【一般会给两种、第一种:官网下载{浏览器中下载速度非常慢 可能挂外网会快些或者插件?}第二种:大佬给的网盘。按照操作流程进行下载,其中第二步建议选择最低下的小方块 删除以前配置的文件{双重保证更安心} 下载成功后完美运行】

    
    #include <stdio.h>
    #define RANDNUM 30
    int main()
    {
        int j,k=0;
        int perversion[RANDNUM];
        for(j=0;j<RANDNUM;j++)
        {
            //产生30个倒序的数
            perversion[k]=RANDNUM-j;
            printf("%d\n",perversion[k]);
            k++;
        }
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月11日

悬赏问题

  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真