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