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

举个简单的例子说明:输入3个数,输出其中的最大值。代码:#include<stdio.h>voidmain(){inta,b,c,max;scanf("%d%d%d",&... 举个简单的例子说明:输入3个数,输出其中的最大值。
代码:
#include<stdio.h>
void main()
{
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
printf("%d\n",max);
}
我是想,当输入的不是数,比如uyfyu或12a或*^%之类的时,提示输入有误,然后重新输入。其他语言有好方法也说下,比如C++、java。
O(∩_∩)O谢谢
展开
 我来答
百度网友99e4890
推荐于2017-11-28 · TA获得超过189个赞
知道答主
回答量:163
采纳率:0%
帮助的人:73.4万
展开全部
#include <iostream>

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<b)
max=b;
if(max<c)
max=c;
cout<<"最大值为"<<max;

}
ggjj741
2012-02-26 · 超过34用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:79.3万
展开全部
#include<stdio.h>
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<b)
max=b;
if(max<c)
max=c;
printf("%d\n",max);
}
解释,scanf()函数的返回值是它读取的值的个数,如果你声明类型是%d那就不会读取其他类型数据。 这是判断输入是否正确的最简单的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浏一哈
2012-02-26 · TA获得超过478个赞
知道答主
回答量:132
采纳率:0%
帮助的人:52.1万
展开全部
#include<stdio.h>
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<b)
max=b;
if(max<c)
max=c;
printf("%d\n",max);
}
自己再写一个isnumber()函数判断一个字符串是不是数值型就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanshichengxu
2012-02-26
知道答主
回答量:31
采纳率:100%
帮助的人:7.2万
展开全部
你定义的是整形变量,输入的应当是数,如果想输入字母之类的,定义字符型吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式