1013-三角形判断

描述

给定三条边的长度,判断能否组成三角形,如果可以,判断三角形的形状。

输入

 

一组数据,每行三个实数,在(0,10]之间,精确到小数点后第四位。最后以0 0 0表示结束。

 

输出

 

根据每行的数据判断,如果不能组成三角形,则输出“Not a triangle”;如果是“等腰三角形”,则输出“Isosceles triangle”;如果是“直角三角形”,则输出“Right triangle”;如果是“等腰直角三角形”,则输出“Isosceles right triangle”;如果是“等边三角形”,则输出“Equilateral triangle”;否则,输出“General triangle”。最后输出一行“End”。

 

样例输入

1.4142 1.4142 2

1.0000 4.0000 5.0000

0 0 0

样例输出

Isosceles right triangle

Not a triangle End

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

    double a,b,c;    

    while(scanf("%lf%lf%lf",&a,&b,&c)==3)

    {

    if(a==0&&b==0&&c==0)

    {

        cout<<"End"<<endl;

        break;

    }

    if((a+b<=c)||(a+c<=b)||(c+b<=a))

        cout<<"Not a triangle"<<endl;

    else if(a==b&&a==c)

        cout<<"Equilateral triangle"<<endl;

    else if((a==b||a==c||b==c)&&(fabs(a*a+b*b-c*c)<0.001||fabs(a*a+c*c-b*b)<0.001||fabs(c*c+b*b-a*a)<0.001))

        cout<<"Isosceles right triangle"<<endl;

    else if(a==b||a==c||b==c)

        cout<<"Isosceles triangle"<<endl;    

    else if(fabs(a*a+b*b-c*c)<0.001||fabs(a*a+c*c-b*b)<0.001||fabs(c*c+b*b-a*a)<0.001)

        cout<<"Right triangle"<<endl;

    else 

        cout<<"General triangle"<<endl;

    }

    return 0;

} 

  

你可能感兴趣的:(判断)