我是编码的新手,这是一个简单的程序,我写的不接受测试用例,每个案例如果满足条件则显示文本,如果不满足则显示-1。但是,我一直遇到运行 - 我尝试在CodeChef网站上传它的时间。请提出建议。
#include <iostream>
using namespace std;
int main()
{
int T,sol_arr[10],i;
// cout<<"Enter the number of test cases\n";
cin>>T;
if(T>=1||T<=1000)
{
for(i=1;i<=T;i++)
{
// cout<<"\nEnter value for test case number -\t"<<i<<"\n";
cin>>sol_arr[i-1];
}
for(i=1;i<=T;i++)
{
if(sol_arr[i-1]>=-20 && sol_arr[i-1]<=20)
cout<<"What an obedient Servant you are !\n";
else
cout<<"-1\n";
}
}
return 0;
}
答案 0 :(得分:1)
cin>>sol_arr[i-1];
在您声明时,会导致缓冲区溢出
int sol_arr[10];
和i
可以是1
到1000
。
以这种方式创建sol_arr
,使其至少包含1000
值,例如
int sol_arr[1000];
但不要忘记,C ++数组是零索引的。