使用函数证明给定的三个数是否能构成三角形
问题描述
给定三条边,请你判断一下能不能组成一个三角形。
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。
样本输入
2
1 2 3
2 2 2
样本输出
NO
YES
解题思路
给定三条边,请你判断一下能不能组成一个三角形。说明需要判断三个数是否构成三角形,核心:任意两边之和,必须干过第三边!🤔但是,我们可以缩减一下,只要把最小的两边之和干过第三边就可以了😎
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000。说明需要定义一个整数 M ,并进行输入操作,使用循环结构,判定条件为M--
,之后循环体中包含三个正数。并对其进行输入和三角形判定操作😎
⁉️题目中的坑。这里的正数不一定指的是整数,也可以是小数,因为小数也是正数。所以这里不能使用int
,要使用double
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出 YES
,否则 NO
。说明需要进行 if
判定,如果是三角形,那么就是 YES
,若不是,就是 NO
。
代码示例
#include <iostream>
#include <algorithm>
using namespace std;void triangle(double a, double b, double c) {double d[3] = { a,b,c };sort(d, d + 3);if (d[0] + d[1] > d[2]) {cout << "YES" << endl;}else {cout << "NO" << endl;}
}int main() {int m;cin >> m;while (m--) {double a[3];cin >> a[0] >> a[1] >> a[2];triangle(a[0], a[1], a[2]);}return 0;
}