周赛D题:给定三条边,请你判断一下能不能组成一个三角形。
Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;
Output
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。
Sample Input
2
1 2 3
2 2 2
Sample Output
NO
YES
...
include<iostream>
using namespace std;
bool triangle(double a, double b, double c)
{
if (a+b>c&&b+c>a&&a+c>b)
return true;
else
return false;
}
int main()
{
int n;
cin >> n;
double(*a)[3]=new double[n][3];
for (int i = 0; i < n; i++)
{
cin >> a[i][0] >> a[i][1] >> a[i][2];
}
for (int i = 0; i < n; i++)
{
if (triangle(a[i][0], a[i][1], a[i][2]))
cout << "YES" << endl;
else
cout << "NO" << endl;
}
delete[]a;
}
...
题解:(1)针对上述的要求,可以采用数组存储数据的方法完成,定义一个二维数组。
(2)定义一个判断三边能否构成三角形的函数
(3)定义动态二维数组将输入的数据存储。
(4)调用判断函数输出按行输出结果。
网友评论