给定三条边,请你判断一下能不能组成一个三角形。
Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;
Output
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。
这道题看似很容易,但一但不仔细看题,你就永远AC不了,题目中并没有要求三条边的整数,所以一旦用了int类型,就错了,要用double类型。
include <iostream>
using namespace std;
int main()
{
double b, c, d;
int a;
cin >> a;
for (int i = 0; i < a; i++)
{
cin >> b >> c >> d;
if ((b + c) > d&&(b + d) > c&&(c + d )> b)
cout << "YES" << endl;
else cout << "NO" << endl;
}
}
[http://acm.hdu.edu.cn/showproblem.php?pid=2039]