0

http://www.spoj.com/problems/PRIME1/ このプログラムを SPOJ で実行すると SEGMENTATION エラーが表示されますが、私の PC (コードブロック) では問題なく実行されます。

#include<stdio.h>
int main()
{
    int t,m,n,fl=0;
    int i,j,q,w;
    scanf("%d",&t);
    int arr[t];
    for(i=0;i<2*t;++i)
    {
        scanf("%d",&arr[i]);
    }
    for(i=0;i<t*2;i+=2)
    {

        n=arr[i];m=arr[i+1];
        if(n==1)++n;
        for(j=n;j<=m;++j)
        {
            q=j;
            for(w=2;w<q;++w)
            {
                if(q%w==0){fl=1;break;}
            }
            if(fl==0){printf("%d",q);printf("\n");}
            fl=0;
        }
        printf("\n");
    }
    return 0;
}
4

2 に答える 2

0

サイズの配列を作成tしますが、最大 のインデックスで使用します2*t。最初はサイズを指定して作成する必要があります2*t

int arr[2*t];

通常、これらのタイプのエラーは、valgrindまたは同様のツールでプログラムを実行することで検出できます。

于 2013-10-02T22:31:04.387 に答える
0

このコードは間違っています:

int arr[t];
for(i=0;i<2*t;++i)
{
    scanf("%d",&arr[i]);
}

size の配列を作成し、tそこに2*t要素を入れます。カブーム。あなたのコードには他のバグもあるかもしれません-それは私に飛びつきました。

于 2013-10-02T22:31:19.530 に答える