#输入成绩后得到两个反馈
#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。所以又循环了一遍
把现象也截图啊