C++ 请问这段程序哪里出错了?PTA里的,一直显示没通过系统试验,求带过

img


#include <iostream>
using namespace std;
int main()
{
    int N,a[1000000000000],i,jishu,oushu;
    jishu=0;
    oushu=0;
    cout<<"请输入正整数N(<=1000)"<<endl;
    cin>>N;
    while(N<=0)
    {
        cin.clear();
        cin.sync();
        cin>>N;
    }
    for(i=0;i<N;i++)
    {
        cin>>a[i];
        while(a[i]<0)
    {
        cin.clear();
        cin.sync();
        cin>>a[i];
    }
        if(a[i]%2==0) oushu++;
        else jishu++;
    }
    cout<<jishu<<' '<<oushu<<endl;
    return 0;
}

你不要输出"请输入正整数N(<=1000)"这些多于的内容
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <iostream>
using namespace std;
int main()
{
    int N,m,i,jishu,oushu;
    jishu=0;
    oushu=0;
    cin>>N;
    for(i=0;i<N;i++)
    {
        cin>>m;
        if(m%2==0)
            oushu++;
        else
            jishu++;
    }
    cout<<jishu<<' '<<oushu<<endl;
    return 0;
}

img

看代码结果应该是对的呀,有没有什么提示呢?

第6行a数组太大了,分配不出来的,说了就一千个,设定a[1000]就够了