c语言基础语法知识,求解为啥会循环两次

#输入成绩后得到两个反馈

#include<stdio.h>
void menu()
{
    printf("请输入该学生的成绩:\n");
}
int main()
{
    int score, A;
    char op;
    menu();
    scanf_s("%d", &score);
    A = score / 10;
    while (1)
    {
        switch (A) {


        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("成绩不合格,再接再厉\n");
            break;
        case 6:
            printf("成绩合格\n");
            break;
        case 7:
            printf("成绩中等\n");
            break;
        case 8:
            printf("成绩良好\n");
            break;
        case 9:
        case 10:
            printf("成绩优秀\n");
            break;
        default:printf("输入错误\n");
        }
        printf("是否要继续操作?\nY/N\n");
        op = getchar();
        if (op == 'N' || op == 'n')
            break;
    }

}

你把
scanf_s("%d", &score)
写到while外面了
所以你按Y根本没用,还是输出之前的成绩

scanf_s("%d", &score);之后加一个getchar();就好了
原因是你最后的getchar()第一次会自动接收前面输入score后的换行键,导致最后的if条件不满足,未能执行break。所以又循环了一遍

把现象也截图啊

img