2016-12-30 3 views
0

初心者後:CORRECT出力を表示した後ふるい - 正常に動作しますが、クラッシュし、ここで

「ふるいエラトステネスのアルゴリズム」を使用して100の下にあるすべての素数を生成するには、以下のプログラムが正常に動作しますが、クラッシュしました!

ウィンドウのエラー:primenumber.exeが機能しなくなりました!バウンドのうち

#include<stdio.h> 
int main() 
{ 
    int P[100] = {0}, i, j; 

    for(i = 2; i < 100; ++i) 
    { 
    if(P[i] == 0) 
     printf("%d\n", i); 

    for(j = 1; i * j <= 100; ++j) 
     P[i * j] = 1; 
    } 

    return 0; 
} 

答えて

2

あなたの配列の範囲は0〜99

あるので、ここで

i*j<=100 should be i*j<100 

を発生し、配列のオーバーフローがあります

関連する問題