简单代码的运行时错误

时间:2015-07-15 21:10:55

标签: c++

我是编码的新手,这是一个简单的程序,我写的不接受测试用例,每个案例如果满足条件则显示文本,如果不满足则显示-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;
}

1 个答案:

答案 0 :(得分:1)

cin>>sol_arr[i-1];
在您声明

时,

会导致缓冲区溢出

int sol_arr[10];

i可以是11000

以这种方式创建sol_arr,使其至少包含1000值,例如

int sol_arr[1000];

但不要忘记,C ++数组是零索引的。