给定三条边,请你判断一下能不能组成一个三角形。
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
问题链接:https://vjudge.net/problem/HDU-2039
问题分析:先用一个二维数组存储N组数据,每组数据有三个数据。再把每一组数据分别判断是否能构成三角形即可(特别注意需要用double,没用double型我WA了好多次快要疯了)
AC通过的C++语言程序如下:
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int m = 3;
double**p = new double*[n];//分配一个指针数组,将首地址存在p
for (int i = 0; i < n; i++)
{
p[i] = new double[m];
}//相当于声明了一个p[n][3]的二维数组
double shuzhi;
int a = 0, b = 0;
while (a < n)
{
cin >> shuzhi;
p[a][b] = shuzhi;
b++;
if (b == 3)
{
b = 0;
a++;
}
}
for (int j = 0; j < n; j++)
{
if (p[j][0] + p[j][1] > p[j][2] && p[j][1] + p[j][2] > p[j][0] && p[j][0] + p[j][2] > p[j][1])
{
cout << "YES" << endl;
}
else { cout << "NO" << endl; }
}
system("pause");
return 0;
}