三角形判断--牛客

题目:
链接:牛客练习赛
来源:牛客网

KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。
输入:
题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。
输出:
针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

示例:
输入数据:
2 3 2
3 3 3
输出数据:
Isosceles triangle!
Equilateral triangle!

这是一道水题,用if判断一下三条边之间的关系就能得出三角形的类型。但是有一个地方很容易出错,就是三条边数据的类型,不能用int这样的整型,得用double这样的浮点型数据,边长可能是小数,还有一个易错点就是判断完等腰还需要判断是否能构成三角形,不能简单两条边相等就是等腰三角形。

#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
    
    
 double a,b,c;
 while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF)
 {
    
    
  if(a==b||b==c||a==c)
  {
    
    
   if(a==b&&b==c)
   {
    
    
    cout<<"Equilateral triangle!"<<endl;
   }
   else if(a+b>c&&b+c>a&&a+c>b){
    
    
    cout<<"Isosceles triangle!"<<endl;
   }
   else {
    
    
    cout<<"Not a triangle!"<<endl;
   }
  }
  else {
    
    
   if(a+b>c&&b+c>a&&a+c>b)
   {
    
    
    cout<<"Ordinary triangle!"<<endl;
   }
   else {
    
    
    cout<<"Not a triangle!"<<endl;
   }
  }
 }
 return 0;
}

猜你喜欢

转载自blog.csdn.net/HT24k/article/details/107149320