C语言,只能输入 0--100 ,如果输入了不在范围,如何用函数实现循环输入,直到输入正确的数据

C语言,只能输入 0--100 ,如果输入了不在范围,如何用函数实现循环输入,直到输入正确的数据大神帮我看一下,C语言中,当输入的字符不符合规定如何实现循环重新输入,

就比如,我需要判断考试合不合格,分数只能输入 0---100 ,但不小心输入了105,如何才能函数实现循环重新输入,知道符合规定

如果只判断数值是否在允许范围内:
float x;
do {
printf("input x:\n");
scanf("%f",&x);
} while(x<0 || x>100); //当输入了不在范围内的数值,则循环再输入
printf("x=%g\n",x);
======
如果不但要判断输入的数值在允许范围内,而且要判断是否输入了不合法的字符,例如输入了abc,则用:
float x;
int flag;
do {
printf("input x:\n");
flag=scanf("%f",&x); //输入非法字符时flag为0,
fflush(stdin); //清理输入缓冲区,为下次输入做准备
} while(x<0 || x>100 || flag==0);
printf("x=%g\n",x);
====
用 goto 语句 和 别的 循环-判断 方法,也可实现。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-16
好像是continue函数能跳,还有goto能强制跳回去
相似回答