C语言中怎样实现当输入的数据不符合要求时给出提示并要求重新输入

2024-12-27 06:46:17
推荐回答(4个)
回答1:

#include

using namespace std;

void main()

{
int a,b,c,max;

cout<<"请输入\n";

while(!(cin>>a>>b>>c))
{
cin.clear(); //这是关键
cin.ignore(); //这是关键

cout<<"数据格式有误 \n";

}
max=a;
if(max max=b;
if(max max=c;
cout<<"最大值为"<
}

回答2:

#include
void main()
{
int a,b,c,max;
while(scanf("%d%d%d",&a,&b,&c)!=3)
printf("oh,no,please input 3 number!")
max=a;
if(max max=b;
if(max max=c;
printf("%d\n",max);
}
解释,scanf()函数的返回值是它读取的值的个数,如果你声明类型是%d那就不会读取其他类型数据。 这是判断输入是否正确的最简单的方法。

回答3:

#include
void main()
{
int a,b,c,max;
do{
scanf("%d%d%d",&a,&b,&c);
}while(!isnumber(a)||!isnumber(b)||!isnumber(c));
max=a;
if(max max=b;
if(max max=c;
printf("%d\n",max);
}
自己再写一个isnumber()函数判断一个字符串是不是数值型就行了

回答4:

你定义的是整形变量,输入的应当是数,如果想输入字母之类的,定义字符型吧