AAA_秃头码农 2022-11-28 17:54 采纳率: 61.5%
浏览 10
已结题

无论输入什么,输出的结果都是2147353477

img


#include<stdio.h>
int main()
{
    int a[1000],i,max=0,q;
    for(i=0;i<=1000;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]<0)
        {
        break;
        }
    }
    for(q=0;q<=1000;q++)
    {
        if(max<a[q])
        max=a[q];
    }
    printf("%d\n",max);
    return 0;
}
  • 写回答

2条回答 默认 最新

  • curating 2022-11-28 18:10
    关注

    原因是程序访问未初始化的数组变量造成。看第二张图。
    修正方法:按当前思路,只需在第一个负值(即输入的负值位置)结束循环就可以符合逻辑。

    img


    程序访问未初始化的数组变量

    img

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月30日
  • 已采纳回答 11月28日
  • 创建了问题 11月28日

悬赏问题

  • ¥15 asp写PC网站开通了微信支付,扫码付款不能跳转
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊