1
我幾天前開始學習C語言。我在使用Erathosthemes篩尋找素數時遇到了這個問題。代碼編譯但沒有提供正確的輸出。Eratosthenes輸出錯誤的篩網
#include<stdio.h>
#include<math.h>
#define size 100
int main()
{
int n;
printf("Enter the value of n\n");
scanf_s("%d",&n);
int A[size],i;
for(i=0;i<n+1;i++)
{
A[i]=i;
}
A[1]=0;
for(i=0;i<sqrt((float)n);i++)
{
for(int j=0;j<n+1;j++)
{
if(A[j]%i==0)A[j]=0;
else A[j]=j;
}
}`
for(i=0;i<n+1;i++)
{
if(A[i]!=0)printf("%d\n",A[i]);
}
}
使用調試器。你的'if(A [j]%i == 0)顯然是錯誤的,'i'以'0'開頭。 – 2014-10-11 05:45:51
這不是SoE。 請經過[1]和[2]。 [1] http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes#Implementation [2] http://rosettacode.org/wiki/Sieve_of_Eratosthenes#C – 2014-10-11 08:09:55