洛谷刷题C++语言 | P5717 三角形分类

学习C++从娃娃抓起!记录下洛谷C++学习和备考过程中的题目,记录每一个瞬间。

附上汇总贴:洛谷刷题C++语言 | 汇总_热爱编程的通信人的博客-CSDN博客


【题目描述】

给出三条线段 a,b,c 的长度,均是不大于 10000 的正整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?

  • 如果三条线段不能组成一个三角形,输出Not triangle;
  • 如果是直角三角形,输出Right triangle;
  • 如果是锐角三角形,输出Acute triangle;
  • 如果是钝角三角形,输出Obtuse triangle;
  • 如果是等腰三角形,输出Isosceles triangle;
  • 如果是等边三角形,输出Equilateral triangle。

如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。

【输入】

输入 3 个整数 a、b 和 c。

【输出】

输出若干行判定字符串。

【输入样例】

3 3 3

【输出样例】

Acute triangle Isosceles triangle Equilateral triangle

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a,b,c,t1,t2;
    cin >> a >> b >> c;
    if(a>b) swap(a,b);
    if(b>c) swap(b,c);
    if(a>b) swap(a,b);
    t1 = a*a + b*b;
    t2 = c*c;
    if(a+b<=c) cout << "Not triangle" << endl;
    else {
        if(t1 == t2) cout << "Right triangle" << endl;
        if(t1 > t2) cout << "Acute triangle" << endl;
        if(t1 < t2) cout << "Obtuse triangle" << endl;
        if(a==b || b==c) cout << "Isosceles triangle" << endl;
        if(a==b && b==c) cout << "Equilateral triangle" << endl;
    }
    
    return 0;
}

【运行结果】

1 14 5
Not triangle