如果只判断数值是否在允许范围内:
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 语句 和 别的 循环-判断 方法,也可实现。
温馨提示:答案为网友推荐,仅供参考