我是靠谱客的博主 呆萌麦片,最近开发中收集的这篇文章主要介绍c++Double类型不能直接比较大小L1-031. 到底是不是太胖了,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

被一道C语言课后练习题卡了好久,,,原因竟然是double的精度问题。写篇博客标记一下这个错误。

如题,double a,b;然后直接if(a>b)或者if(a<b)或者if(a==b)都是不精确的。

标准做法应该要加一个eps。

 

const double eps = 1e-6//一般负六次就够了
int e = 10;
if(a+eps<10)//...
if(a<10-eps)//....
if(fabs(a-b)<eps)//判断相等

当然也跟题目很坑有关系,

 

 

L1-031. 到底是不是太胖了

时间限制

400 ms

内存限制

65536 kB

代码长度限制

8000 B

判题程序

Standard

作者

陈越

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 |真实体重-标准体重| < 标准体重x10%)。已知1市斤=0.5公斤。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

输入格式:

输入第一行给出一个正整数N(<= 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W <= 300;单位:市斤),其间以空格分隔。

输出格式:

为每个人输出一行结论:如果是完美身材,输出“You are wan mei!”;如果太胖了,输出“You are tai pang le!”;否则输出“You are tai shou le!”。

输入样例:

3
169 136
150 81
178 155

输出样例:

You are wan mei!
You are tai shou le!
You are tai pang le!
这题用int都可以过。。。。。但是用double要特意注意上述问题

 

最后

以上就是呆萌麦片为你收集整理的c++Double类型不能直接比较大小L1-031. 到底是不是太胖了的全部内容,希望文章能够帮你解决c++Double类型不能直接比较大小L1-031. 到底是不是太胖了所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部