**
判断三条边能否组成三角形
**
Problem Description
给定三条边,请你判断一下能不能组成一个三角形。
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
思路:先对三条边进行从小到大排序,再判断前两条边的和是否大于第三边,如果是,那么这三条边就能够组合成三角形。
注意:边长输入时要是double型,题意说的是正数,没说是正数,所以当用int类型输入边长时就会WA
#include<stdio.h>
int main()
{
int n,i;
double temp;
double a[3];
while(~scanf("%d",&n))
{
while(n--)
{
for(i=0;i<3;i++)
scanf("%lf",&a[i]);
if(a[0]>a[1])
{
temp=a[0],a[0]=a[1],a[1]=temp;
}
if(a[0]>a[2])
{
temp=a[0],a[0]=a[2],a[2]=temp;
}
if(a[1]>a[2])
{
temp=a[1],a[1]=a[2],a[2]=temp;
}
if(a[0]+a[1]<=a[2])
printf("NO\n");
else
printf("YES\n");
}
}
return 0;
}