永发信息网

C程序流程问题

答案:1  悬赏:20  手机版
解决时间 2021-07-30 12:52
  • 提问者网友:無理詩人
  • 2021-07-29 22:37

#include <stdio.h>
main(viod)
{
int a=1;
char i;
while(a!=7)
{
printf("Input Grade: %d ",a);
scanf("%c",&i);
if(i=='\n') continue ;
a++;
switch(i)
{
case 'A' : printf("A 对应的百分制成绩区间是90~100\n"); break;
case 'B' : printf("B 对应的百分制成绩区间是80~89\n"); break;
case 'C' : printf("C 对应的百分制成绩区间是70~79\n"); break;
case 'D' : printf("D 对应的百分制成绩区间是60~69\n"); break;
case 'E' : printf("E 对应的百分制成绩区间是50~59\n"); break;
default: printf("输入的错误,请输入ABCDE字符\n");break;
}
}
}

为什么我运行的结果每次都多显示 一行 Input Grade:

最佳答案
  • 五星知识达人网友:过活
  • 2021-07-29 22:53
#include <stdio.h>
main()
{
int a=1;
char i;
while(a!=7)
{
printf("Input Grade: %d ",a);
scanf("%c",&i);
if(i=='\n') continue;
a++;
switch(i)
{
case 'A' : printf("A 对应的百分制成绩区间是90~100\n"); break;
case 'B' : printf("B 对应的百分制成绩区间是80~89\n"); break;
case 'C' : printf("C 对应的百分制成绩区间是70~79\n"); break;
case 'D' : printf("D 对应的百分制成绩区间是60~69\n"); break;
case 'E' : printf("E 对应的百分制成绩区间是50~59\n"); break;
default: printf("输入的错误,请输入ABCDE字符\n");break;
}
while(getchar() != '\n'); // 加上这句清楚缓冲区里的'\n',否则下次读字符直接读到这个'\n',其实是上次你输入留下来的
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯