C语言基础知识,while循环

这是我刚码出来的一个代码,为啥第一次输入1有反应,然后按下enter再输入一次1没反应,还要输入一次1才会有反馈?

#include <stdio.h>
#include <stdlib.h>
void menu()
{
    printf("********Time********\n");
    printf("*****1.Morning******\n");
    printf("*****2.Afternoon*****\n");
    printf("*****3.Night*******\n");
    printf("请输入对应的序号:\n");
}
int main()
{
    int x;
    menu();
    while(x>=0)
    {
    void menu();
    scanf("%d",&x);
        switch(x)
    {
        case 1:
                printf("Good morning!Guys.\n");
                break;
        case 2:
                printf("Good afternoon!Guys.\n");
                break;
        case 3:
                printf("Good night!Guys.\n");
                break;
        default:printf("输入错误,请重新输入.\n");
    }
    scanf("%d",&x);
    }
    
    return 0;
}


img

img

第二次你会执行两次scanf("%d",&x)啊,把,第一个scanf("%d",&x)放到循环外面