判断一个数是否为质数的程序
program that tells if a number is prime
你输入一个数字,程序会判断这个数字是否是素数
所以当我第一次输入数字 7 时,它会显示 'the number is prime'
然后我输入 8 它会显示 'the number is not prime'
之后我 re_enter 数字 7 它会告诉你 'the number is not prime'
我不知道问题出在哪里
请帮我
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;
}
每次用户输入数字时,您需要将 isPrime
设置为 0
。否则,它仍然保留前一个数字的值。
移动变量声明
int isPrime = 0;
在 while
循环内。
顺便说一句,那个变量名不是倒过来了吗?当你发现有一个数将它平分时,你将它设置为 1
(即 true
)。但那是当数字 不是 素数时。
您忘记在 "while" 循环中将 isPrime 重置为零。
顺便说一下,您似乎是在学习练习。很好,没有比尝试更好的学习方法了。
这里有一个 C 语言的提示,任何非零值都被视为 "true",零被视为 "false"。所以不是这个:
if (myFlag==1) { ... do something }
就这么写:
if (myFlag) { ... do something }
你输入一个数字,程序会判断这个数字是否是素数 所以当我第一次输入数字 7 时,它会显示 'the number is prime' 然后我输入 8 它会显示 'the number is not prime' 之后我 re_enter 数字 7 它会告诉你 'the number is not prime' 我不知道问题出在哪里 请帮我 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;
}
每次用户输入数字时,您需要将 isPrime
设置为 0
。否则,它仍然保留前一个数字的值。
移动变量声明
int isPrime = 0;
在 while
循环内。
顺便说一句,那个变量名不是倒过来了吗?当你发现有一个数将它平分时,你将它设置为 1
(即 true
)。但那是当数字 不是 素数时。
您忘记在 "while" 循环中将 isPrime 重置为零。
顺便说一下,您似乎是在学习练习。很好,没有比尝试更好的学习方法了。
这里有一个 C 语言的提示,任何非零值都被视为 "true",零被视为 "false"。所以不是这个:
if (myFlag==1) { ... do something }
就这么写:
if (myFlag) { ... do something }