【发布时间】:2017-04-25 12:38:36
【问题描述】:
我想要所有 Prime 并且程序可以运行,但我收到了警告:
warning: control reaches end of non-void function [-Wreturn-type] }
我知道我需要在 bool isprim 中添加最后一个 return,但我不明白。
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;
}
【问题讨论】:
-
我认为您缺少退货声明
return isPrim(prim,tester-1); -
不,我收到警告
-
您应该标记您正在使用的语言,以使相关人员可以看到问题。您的语言可能不会将整数隐式转换为布尔值,因此您应该将
1s 更改为trues 并将0s 更改为falses。 -
对不起,它的“C”你的解决方案不起作用我收到警告
-
请删除您的答案并编辑问题。您应该阅读一些有关如何参与本网站的说明,或看看其他人的做法。
标签: c function recursion primes