我是 C 的初学者,我必须将 Eratosthenes 算法的筛子转换为 C 代码。这是给出的算法: *START 初始化数组 is_prime,以便所有元素的值都为 TRUE。将 is_prime[1] 的值设置为 FALSE(因为 1 不是素数。)对于 I=2 直到 sqrt(N) 执行:将 I 的所有倍数设置为 FALSE,从 I*I 开始直到 N。打印所有is_prime 的索引值保持为 TRUE。结尾*
到目前为止,这是我的代码:
#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]);
     }
}
该程序无法编译,我想知道该程序有什么问题。谢谢