|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求教C语言内如何在输入字符错误的情况下,程序要求重新入,
感觉这个程序达不到这个效果,能改下吗?谢谢啦
#include<stdio.h>
void main()
{
char grade; //从键盘输入大写字母,程序输出对应段分数
scanf("%c",&grade);
while(grade>='A'&&grade<='Z'==1)
{
printf("输入有误,请重新输入!");
scanf("%c",&grade);
}
printf("Your score:");
switch(grade)
{
case'A':
{
printf("85~100\n");
break;
}
case'B':
{
printf("70~84\n");
break;
}
case'C':
{
printf("60~69");
break;
}
case'D':
{
printf("<60\n");
break;
}
default:
{
printf("enter data error!\n");
}
}
}
本帖最后由 jackz007 于 2020-9-15 23:46 编辑
- #include<stdio.h>
- main(void)
- {
- char grade ;
- for(;;) {
- printf("请输入分数等级(A~D):") ;
- scanf("%c" , & grade) ;
- fflush(stdin) ; // 关键语句,清除键盘缓冲区。楼主可以注释掉此句,
- // 观察在输入错误时候的效果。
- if(grade >= 'a' && grade <= 'z') grade -= 0x20 ; // 把小写字符转换为大写
- if(grade >= 'A' && grade <= 'D') break ; // 如果输入有效,退出循环
- else printf("输入有误,请重新输入!\n\n") ; // 否则给出错误提示,继续循环
- }
- switch(grade) {
- case 'A': printf("85~100\n") ; break ;
- case 'B': printf("70~84\n") ; break ;
- case 'C': printf("60~69\n") ; break ;
- case 'D': printf("< 60\n") ; break ;
- }
- }
复制代码
|
|