如何计算Primes

时间:2017-04-25 12:38:37

标签: c function recursion primes

我想要所有Primes和程序工作,但我收到警告:
警告:控制到达非空函数的末尾[-Wreturn-type]  }

我现在需要bool isprim的最后一次回复,但我不明白

bool isPrim(int prim,int tester){
if(prim <=1){
    return 0;   
}else if(tester==1){
    return 1;   
}else if (tester>=1&&(prim % tester)!=0){
    isPrim(prim,tester-1);

}else if ((prim % tester)==0){
    return 0;   
}
}   


int main(){
int eingabe;
int zaehler=1;
printf("Bitte Zahl zum testen eingeben\n");
scanf("%i",&eingabe);

if (isPrim(eingabe,eingabe-1)){
    printf("Ihre Zahl ist eine Primzahl\n");
}else{
    printf("Ihre Zahl ist keine Primzahl\n");
}
//show me all Primes <1000
printf("Nun werden alle Primzahlen bis 10000 ausgegeben\n\n");
while(zaehler<=10000){
    if(isPrim(zaehler,zaehler-1)){
        printf("%i\t",zaehler); 
    }   

zaehler++;  
}

return 0;
}

1 个答案:

答案 0 :(得分:0)

你必须没有任何可能不会返回布尔值的分支,即使它们永远不会被执行:

// This will throw a warning.
bool func(){
  if( true ){
    return 0;
  }
}

将最后else if更改为else,或者在最后添加额外的else(或只是返回)。