[英]program that tells if a number is prime
你輸入一個數字,程序會發現這個數字是否是素數,所以當我第一次輸入數字 7 時,它會顯示“這個數字是素數”,然后我輸入 8,它會顯示“這個數字是素數”不是素數”之后我重新輸入數字 7,它會顯示“數字不是素數”我不知道問題出在哪里請幫我從這里獲取示例照片,我的代碼是:
#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 中的一個提示,任何非零值都被視為“真”,零被視為“假”。 所以而不是這個:
if (myFlag==1) { ... do something }
只寫這個:
if (myFlag) { ... do something }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.