#include<iostream>
using namespace std;
int main()
{
int N,i,j,k,p;
int a[100000][3];
p=0;
cin>>N;
if(N<1||N>100000) cin>>N;
for(i=0;i<N;i++)
{
for(j=0;j<3;j++)
{ cin>>a[i][j];
if(a[i][j]<1||a[i][j]>1000000000) cin>>a[i][j];
}
cout<<endl;
}
for(i=0;i<N;i++)
{
k=a[i][2]-a[i][0];
if(k>0&&a[i][1]>p) p=a[i][1];
}
if(p==0) cout<<"-1";
if(p>0) cout<<p;
return 0;
}
(1)cin>>N;
(2)if(N<1||N>100000) cin>>N;
在(1)里已经给N赋值了,在(2)里又让重新输入一遍,这么写是不对的。你应该想判断输入的值是不是在100000范围内,可以这么写whie(true){cin>>N;if(N>=1 && N<100000) break;}.
后面的也是这个问题。
如有帮助,请采纳一下。
其他的先不说,你申请那么大的空间int a[100000][3];,栈空间够吗?
int a[100000][3];数组定义太大了,栈空间不够,用new来创建吧