程序在 do-while 中不等待用户输入

时间:2021-04-05 13:02:34

标签: c while-loop

我正在尝试使用 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:

0 个答案:

没有答案
相关问题