C语言二维数组输入错误后怎么报错重新输入

高手哪位知道,C语言二维数组输入错误后怎么报错重新输入
最新回答
抵住引诱

2024-11-29 10:39:24

数据输入错误,有两种情况:
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("输入不正确,请重新输入\n");
fflush(stdin);//清空输入,这一步是必须的,不然出错的输入可能影响下次输入。
}