我正在尝试使用 do-while 循环执行一个程序来检查数字是否为素数,问题在于它不等待用户在“您想继续吗?”部分的输入。它再次直接打印“检查素数” 我已经尝试过 fflush(),而不是 scanf getchar() 和 getc(stdin) 还可以在 linux 笔记本电脑中尝试不同的编译器 gdb online 和 gcc 不知道是哪里出了问题
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, n, count;
char option;
do {
printf("Check prime number: ");
scanf("%d", &n);
if (n < 0) {
printf("By definition prime numbers are strictly positive. Try again\n");
} else {
count = 0;
for (i = 1; i < n; i++) {
if (n % i == 0) {
count++;
}
}
count <= 1 ? printf("%d is a Prime number\n",n) : printf ("%d is not a Prime number\n", n);
}
printf("Do you want to continue? Y/N\n");
scanf("%c",&option);
} while (option == 'y' || option != 'Y');
return 0;
}
输出:
Check prime number: 5
5 is a Prime number
Do you want to continue? Y/N
Check prime number: