2016-12-30 51 views
0

新手在這裏崩潰:埃拉托色尼算法篩 - 工作正常,但之後

下面的程序使用「埃拉托色尼的篩算法」,產生了100下的所有質數正常,但顯示正確輸出後崩潰!

Windows中的錯誤: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

這裏存在

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

發生的陣列溢出,因爲您的陣列的範圍爲0-99

相關問題