为什么我的代码给出了SIGSEGV运行时错误?

时间:2019-01-25 14:25:55

标签: c++11 runtime-error

我正在尝试在此代码中实现Eratosthenes筛。请记住,编码范围应为100000个数字,最大上限为1000000000。在线判断给出了SIGSEGV运行时错误。请帮忙。

我尝试将数组大小减小到100。它仍然没有用。我已经在局部变量和全局变量之间切换

int primes[100000]={0}, t, a, b ,i,j,k,l;
int main()
{
    cin>>t;
    for(i=0;i<t;++i)
    {
        cin>>a>>b;
        if(a!=1)
          j=a;
        else
          j=2;
        for(;j<=b;++j) // loop for number count
          for(k=j*j;k<=b;k+=j) // loop for finding composites
            primes[k-1]=1;  //marking out all non primes
              for(l=a;l<=b;++l)
              {
                if(primes[l-1]==0 && l-1!=0)
                cout<<l<<endl;
              }
    }
}

它在我的系统上运行良好(我使用的是Dev C ++ 5.11),但不适用于在线法官。

0 个答案:

没有答案