您输入一个数字,程序将查找数字是否为素数 所以当我第一次输入数字7时,它会显示'数字是素数' 然后我输入8,它会显示'数字不是素数' 之后我重新输入数字7,它会显示'数字不是素数' 我不知道问题出在哪里 请帮我 an example photo from here 我的代码是:
#include <stdio.h>
#include <stdlib.h>
int main (void){
int n;
int t;
int isPrime=0;
char var;
while(var!='q'){
printf("q=quit p=prime :");
fflush(stdin);
scanf("%c",&var);
if(var=='p'){
printf("plz put the number value :");
scanf(" %d",&n);
for(t=2;t<=n/2;t++){
if (n%t==0){
isPrime=1;
break;
}
}
if(isPrime==0){
printf("%d is a prime number\n",n);
}
else{
printf("%d is not a prime number\n",n);
}
}
else if(var=='q'){
printf("thank you bye\n");
break;
}
else{
printf("a wrong letter\n");
}
}
return 0;
}
答案 0 :(得分:2)
每次用户输入数字时,您需要将isPrime
设置为0
。否则,它仍保留前一个数字的值。
移动变量声明
int isPrime = 0;
在while
循环内。
1
(即true
)。但是当数字不时,那就是
答案 1 :(得分:0)
您忘记在“while”循环内将isPrime重置为零。
按照他们的方式,看起来你正在做这个学习练习。这很好,没有比学习更好的方法了。
这是C中的提示,任何非零值都被视为“true”,零被视为“false”。所以不要这样:
if (myFlag==1) { ... do something }
请写下:
if (myFlag) { ... do something }