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

img


#include
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(maxprintf("%d\n",max);
    return 0;
}

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

img


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

img