我是C的初學者,我必須將Eratosthenes算法的篩選轉換爲C代碼。這是給出的算法: * START 初始化數組is_prime,以使 元素的所有值都爲TRUE。 將is_prime [1]的值設置爲FALSE(因爲1不是素數)。 對於I = 2,直到sqrt(N)執行: 將I的所有倍數設置爲FALSE,從I * I 開始,直到N 。 打印保存值爲TRUE的is_prime的所有索引。 END *使用數組的C中Eratosthenes的篩網
這是到目前爲止我的代碼:
#include <stdio.h>
#include <math.h>
#define N 300
void displayPrime (bool checkPrime);
bool checkPrime (int num);
main()
{
bool is_prime[N+1];
displayPrime(is_prime);
getchar();
}
void displayPrime (bool check)
{
int I;
for(I=1; I<N; I++)
{
checkPrime(is_prime[I]);
if(is_prime[I]==TRUE)
{
printf("%d\n", I);
}
else if(is_prime[I]==FALSE)
{
printf("");
}
}
}
bool checkPrime (int num)
{
int num;
is_prime[1]=FALSE;
for(I=2; I<=sqrt(N); I++)
{
for(num=I; num<=N/num; num=num*I)
{
is_prime[num]=FALSE;
}
return(is_prime[I]);
}
}
程序不編譯,我想知道什麼是錯的程序。謝謝
如果程序不能編譯:什麼是錯誤信息? –
編譯器說什麼?它不是指向特定的行嗎?要求編譯器發出警告,它會給你更多的線索。 – devnull
因爲當你在C中布爾?(不是C++) 一個定義? – Alexis