C语言输出值为什么有多出来一个重复的,看看是哪里出错了

char score=0; int count=0; while(1) { printf("请输入您的考试评级:"); scanf("%c",&score); switch(score) { case'A': {printf("优秀\n");break;} case'B': {printf("良好\n");break;} case'C': {printf("一般\n");break;} case'D': {printf("及格\n");break;} case'E': {printf("差\n");break;} default: {printf("错误值\n");break;} } }如图2.为什么我输出值会多出来一行输入考试评级:错误值的。求大神看一下,是我哪里写错了

在最后一个“}”的前面加入一个scanf("%c",&score);就可以了,它把多余的一个回车符读走。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-15
scanf之前,加入一个清理缓冲区的函数。fflush(stdin);
相似回答