一个简单代码的运行时错误

Run-time error for a simple code

本文关键字:代码 运行时错误 简单 一个      更新时间:2023-10-16

我是编码新手,这是我编写的一个简单的程序,可以接受没有测试用例,并且对于每个用例,如果满足条件则显示文本,如果不满足条件则显示-1。然而,当我试图在CodeChef网站上上传它时,我一直遇到运行时。请务必告知。

#include <iostream>
using namespace std;
int main()
{
    int T,sol_arr[10],i;
      //  cout<<"Enter the number of test casesn";
        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<<"-1n";
        }
    }
   return 0;
}
cin>>sol_arr[i-1];

可能导致缓冲区溢出,正如您声明的

int sol_arr[10];

i可以是1 ~ 1000

创建sol_arr,使其至少包含1000的值,例如

int sol_arr[1000];

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