在c语言中如何判断输入的两个数是否都是整数 10

请问:在c语言中如何判断输入的两个数是否都是整数?请指教。我用了以下编程,但发现当输入的第二个数是实数时,运行有误,#include<stdio.h>main(){int... 请问:在c语言中如何判断输入的两个数是否都是整数?请指教。
我用了以下编程,但发现当输入的第二个数是实数时,运行有误,
#include <stdio.h>
main()
{
int a,b,n;
n=scanf("%d%d",&a,&b);
if(n==2)
printf("ok");
else
printf("error!");
system("pause");
}
用%d也能输入实数啊,只不过被截尾了而已嘛。题目就是要求输入两个整数,判断输入是否正确啊。
展开
 我来答
宁波祝老师
2008-11-06 · TA获得超过849个赞
知道小有建树答主
回答量:455
采纳率:100%
帮助的人:292万
展开全部
解释下:比如输入 2 3.0 ,读入到3.0时 因为 是以 %d 的形式来读,3后面的 .0计算机就不处理或者识别了,所以得到错误的答案

所以验证是否为整数不能这样验证,可能要当字符串来处理,只要检查里面是否有 小数点或其他符号即可

既然要判断,就应该全面容错,比如错误输入其他字符等,用字符串来判断并不麻烦

如果你真要用 助理那个程序有个地方要改下
if(a-int(a)!=0) ——》 if(a-int(a)<1e-8)
The_facE
2008-11-06 · TA获得超过1053个赞
知道小有建树答主
回答量:1087
采纳率:0%
帮助的人:927万
展开全部
你这样输入两个整数需要回车或达到读入数据上限才能分开。
但是,如果你真的输入两个数字,第二个是实数时,是无法输出error的,因为scanf函数读入到小数点就会自动停止输入。

如果不考虑不需要的变量的话,可以再加一个不用的变量c,这样,第二个数据的读入就可以判断了。

楼上的办法就很好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bingxuewujian
2008-11-06
知道答主
回答量:51
采纳率:0%
帮助的人:28.6万
展开全部
关键是要清楚算法,怎样编程通俗易懂且容易!
输入的时候不要定义为整型,不然数据无法读入,定义为浮点型后则都可读入。
用这个程序就可以:
#include <stdio.h>
void main()
{
float a,b;
printf("Input a and b:");
scanf("%f%f",&a,&b);
if(a-int(a)!=0)
printf("a is not zheng_shu\n");
else
printf("a is zheng_shu\n");
if(b-int(b)!=0)
printf("b is not zheng_shu\n");
else
printf("b is zheng_shu\n");

}

补充:请问我这个程序你试了没?不会出现你那样的情况。
再补充:输入格式用f%没有问题的呀,用d%就输入不了其它类型的数。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式