C语言,只能输入0--100,如果输入了不在范围,如何用函数实现循环输入,直到输入正确的数据?
数据输入错误,有两种情况:
1 输入的数据格式不正确,比如要求输入整型,但是输入了字符型。 这种情况,可以通过scanf的返回值进行判断,scanf的返回值是正确输入的变量个数。当返回值和要输入的变量个数不同时,则表示出错,要求重新输入。
2 输入的数据不在合法范围内。 比如要求输入正数,但输入了负数。这时需要判断输入的值是否合法。 以输入两个整数,要求范围在0~100之间的代码可以写作 int a,b,r; while(1)//死循环,不得到正确输入不退出。 { r = scanf("%d%d",&a,&b); if(r == 2 && (a>=0 && a <= 100) && (b>=0 && b<=100)) break;//输入正确,退出循环。 printf("输入不正确,请重新输入 "); fflush(stdin);//清空输入,这一步是必须的,不然出错的输入可能影响下次输入。 }
到此,以上就是小编对于C语言考过的问题就介绍到这了,希望介绍关于C语言考过的1点解答对大家有用。
(图片来源网络,侵删)
(图片来源网络,侵删)