功能选择之后不能自动弹出下一个printf内容

功能选择之后不能自动弹出下一个printf内容。

#pragma warning(disable:4996)        //scanf报错C6031    返回值被忽略 可以通过添加此代码解决
#include "stdio.h"
int muln(int n);
int main()
{
    int gn;
    printf("请输入1个整数:");
    scanf("%d ", &gn);
    /*if (gn == 1)
    {
        long int result1;
        result1 = result();
        printf("两者相差天数=%ld天\n", result1);
    }*/

    if (gn == 2)
    {
        int i;
        printf("请输入一个整数:");
        scanf("%d", &i);
        if (i & 1)
        {
            printf("%d为奇数", i);
        }
        else
        {
            printf("%d为偶数", i);
        }
    }

    if (gn == 3)
    {
        int j[3];
        printf("请输入两个整数:");
        scanf("%d %ld", &j[1], &j[2]);
        if (j[1] > j[2])
        {
            j[0] = j[1];
            j[1] = j[2];
            j[2] = j[0];
        }
        printf("%d到%d之间的偶数为:", j[1], j[2]);
        for (int i = j[1] + 1; i < j[2]; i++)
        {
            if (i % 2 == 1)
            {
                printf("%d\t", i);
            }
        }
        printf("\n%d到%d之间的奇数为:", j[1], j[2]);
        for (int k = j[1] + 1; k < j[2]; k++)
        {
            if (k % 2 == 0)
            {
                printf("%d\t", k);
            }
        }
    }


    if (gn == 4)
    {
        int i, j;
        for (i = 1; i <= 9; i++)
        {
            for (j = 1; j <= i; j++)
            {
                printf("%d*%d=%d\t", i, j, i * j);
            }
            printf("\n");
        }
    }
    if (gn==5)
    {
        int num;
        long int num1;
        printf("请输入一个整数:");
        scanf("%d", &num);
        num1 = muln(num);
        printf("\n%d!=%d", num, num1);
    }

    return 0;
}

    int muln(int n)
    {
        if (n>0)
        {
            return n * muln(n - 1);
        }
        else
        {
            return 1;
        }
    }

img

scanf("%d ", &gn);
把%d后面的空格删掉,画蛇添足啦

scanf后的%d多了一个空格,你输入的时候也必须输入这个空格才能被识别出来。所以应该把这个括号去掉

如果对你有帮助,还请点个采纳,万分感谢!

这样:

#pragma warning(disable:4996)        //scanf报错C6031    返回值被忽略 可以通过添加此代码解决
#include "stdio.h"
int muln(int n);
int main()
{
    int gn;
    printf("请输入1个整数:");
    scanf("%d", &gn);
    /*if (gn == 1)
    {
        long int result1;
        result1 = result();
        printf("两者相差天数=%ld天\n", result1);
    }*/
 
    if (gn == 2)
    {
        int i;
        printf("请输入一个整数:");
        scanf("%d", &i);
        if (i & 1)
        {
            printf("%d为奇数", i);
        }
        else
        {
            printf("%d为偶数", i);
        }
    }
 
    if (gn == 3)
    {
        int j[3];
        printf("请输入两个整数:");
        scanf("%d %ld", &j[1], &j[2]);
        if (j[1] > j[2])
        {
            j[0] = j[1];
            j[1] = j[2];
            j[2] = j[0];
        }
        printf("%d到%d之间的偶数为:", j[1], j[2]);
        for (int i = j[1] + 1; i < j[2]; i++)
        {
            if (i % 2 == 1)
            {
                printf("%d\t", i);
            }
        }
        printf("\n%d到%d之间的奇数为:", j[1], j[2]);
        for (int k = j[1] + 1; k < j[2]; k++)
        {
            if (k % 2 == 0)
            {
                printf("%d\t", k);
            }
        }
    }
 
 
    if (gn == 4)
    {
        int i, j;
        for (i = 1; i <= 9; i++)
        {
            for (j = 1; j <= i; j++)
            {
                printf("%d*%d=%d\t", i, j, i * j);
            }
            printf("\n");
        }
    }
    if (gn==5)
    {
        int num;
        long int num1;
        printf("请输入一个整数:");
        scanf("%d", &num);
        num1 = muln(num);
        printf("\n%d!=%d", num, num1);
    }
 
    return 0;
}
 
    int muln(int n)
    {
        if (n>0)
        {
            return n * muln(n - 1);
        }
        else
        {
            return 1;
        }
    }
 

该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据代码逻辑,如果输入的gn是2,程序会先输出"请输入一个整数:",然后等待用户输入一个整数,然后根据输入的整数是奇数还是偶数,输出相应的提示。然后程序就结束了,因为没有任何循环或者等待用户输入的操作。
·
如果您想让程序在输出提示之后继续等待用户输入,可以使用一个循环,比如使用一个while循环包裹整个程序,每次循环结束后再次输出"请输入1个整数:",等待用户输入。
·
示例代码:

#include <stdio.h>

int muln(int n);

int main()
{
    int gn;
    while (1) {
        printf("请输入1个整数:");
        scanf("%d", &gn);

        if (gn == 2)
        {
            int i;
            printf("请输入一个整数:");
            scanf("%d", &i);
            if (i & 1)
            {
                printf("%d为奇数\n", i);
            }
            else
            {
                printf("%d为偶数\n", i);
            }
        }

        // 其他分支同理省略

        // 如果输入的不是有效选项,跳出循环
        if (gn < 1 || gn > 5) {
            break;
        }
    }

    return 0;
}

int muln(int n)
{
    if (n > 0)
    {
        return n * muln(n - 1);
    }
    else
    {
        return 1;
    }
}


这里我们使用了一个死循环 while(1),程序会一直循环,直到用户输入了一个不在范围内的选项,此时使用 break 语句退出循环,程序结束。每次循环开始时,都会输出"请输入1个整数:"并等待用户输入。