首页 > 解决方案 > 检查输入数字是否为素数的功能已损坏,但代码似乎没有任何问题

问题描述

我正在学习如何使用“开关”并且正在编写一个程序来执行各种功能,除了检查输入的程序是否为素数的功能之外,其他一切都在工作。

我真的似乎无法在这里找到代码的问题,是我做错了什么吗?

#include <stdio.h>
int main(){
    int x, c = 1, a, l;

    printf("1. Factorial\n2. Prime or not\n3. Even or Odd\n4. Exit\nWhat would you like to do? ");

    while (c != 4)
    {
        scanf_s("%d", &c);
        switch (c)
        {
        case 1:
            a = 1;
            scanf_s("%d", &x);
            for (l = 1; l <= x; l++)
                a = a * l;
            printf("Factorial of %d = %d\n", x, a);
            break;
        case 2:
            scanf_s("%d", &x);
            for (l = 1; l <= x; l++)
            {
                if (x % l == 0 && l != x)
                {
                    printf("The number entered is not a prime.\n");
                    break;
                }
                else if (l == x)
                {
                    printf("The number entered is a prime.\n");
                    break;
                }
            }
            break;
        case 3:
            scanf_s("%d", &x);
            if (x % 2 == 0)
                printf("The number entered is even.\n");
            else
                printf("The number entered is odd.\n");
            break;
        case 4:
            exit();
        }
        printf("\n1. Factorial\n2. Prime or not\n3. Even or Odd\n4. Exit\nWhat would you like to do? ");
    }
}

标签: cfor-loop

解决方案


推荐阅读