6 solutions

  • 3
    @ 2025-5-1 21:06:44

    加油兄弟,要自己动脑,不要再依赖题解啦

  • 2
    @ 2025-10-28 16:46:34

    题解仅供参考使用,请不要抄袭,害人害己!

    这道题是洛谷原题,可以得到更强的数据,题目难度:入门

    本题考察分支结构,需要注意判断的顺序。

    由于题目给出的边长可能无序,所以要先对三个数从小到大排序

    图:用冒泡排序对三个数排序

    图:用模拟版的冒泡排序对三个数排序

    虽然题目给出的判断条件很乱,虽然大家可能没有思路,但我们可以分成三个部分完成:

    • 是不是三角形
    • 通过角判断三角形
    • 通过边判断三角形

    首先判断能不能成三角形,就是判断两边之和大于第三边,两边之差小于第三边,不成立就输出不行,结束程序。

    图:用分支结构判断是不是三角形

    然后通过角判断三角形的形状,题目给出过如下提示:

    图:题目中的提示

    那我们就可以根据提示判断了,实际上就是把勾股定理的相关知识提前说了。

    图:用分支结构通过角判断三角形

    随后就要通过边判断三角形的形状,两边相等就是等腰三角形,三条边都相等就是等边三角形……吗?

    不全对!等边三角形是特殊的等腰三角形,所以三条边都相等既是等边三角形,又是等腰三角形,注意按顺序输出!

    图:用分支结构通过边判断三角形

    这样我们就完成了这道题。

    总结

    • 本题难度不大,只有三个数,但读题时一定要看好数据是否有序,不然会失分
    • 提示是个好东西。
    • 通过数据范围决定开的类型,如果贸然开long long会有意想不到的结果(CE或MLE然后爆零)

    点个赞再走吧QwQ

    • 2

      简单易懂

      #include<iostream>
      using namespace std;
      
      int main() {
          int a, b, c;
          cin >> a >> b >> c;
          if(a > b) swap(a, b);
          if(a > c) swap(a, c);
          if(b > c) swap(b, c);
          if(a + b <= c) {
              cout << "Not triangle" << endl; 
              return 0;//撤离失败
          }
          if(a * a + b * b == c * c) 
              cout << "Right triangle" << endl;
          if(a * a + b * b > c * c)
              cout << "Acute triangle" << endl;
          if(a * a + b * b < c * c)
              cout << "Obtuse triangle" << endl;
          if((a == b || a == c)||(c == b || a == c)||(a == b || b == c))
              cout << "Isosceles triangle" << endl;
          if(a == b && a == c && b == c)
              cout << "Equilateral triangle" << endl;
          return 0;
      }
      
      
      
      • @ 2025-10-28 16:23:18

        ?
        不是我只听说过只写解法不写代码的,还没听说过只写代码不写解法的!
        你这...

    • 0
      @ 2025-12-17 16:32:19

      #include using namespace std;

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

      • -2
        @ 2025-10-4 15:56:43

        先这样,在那样,然后再这样,最后在那样,就可以完美的WA了

      • -2
        @ 2025-8-12 14:39:07

        非常简单...

        #include<iostream>
        using namespace std;
        
        int main() {
            int a, b, c;
            cin >> a >> b >> c;
            if(a > b) swap(a, b);
            if(a > c) swap(a, c);
            if(b > c) swap(b, c);
            if(a + b <= c) {
                cout << "Not triangle" << endl; 
                return 0;//撤离失败
            }
            if(a * a + b * b == c * c) 
                cout << "Right triangle" << endl;
            if(a * a + b * b > c * c)
                cout << "Acute triangle" << endl;
            if(a * a + b * b < c * c)
                cout << "Obtuse triangle" << endl;
            if((a == b || a == c)||(c == b || a == c)||(a == b || b == c))
                cout << "Isosceles triangle" << endl;
            if(a == b && a == c && b == c)
                cout << "Equilateral triangle" << endl;
            return 0;
        }
        
        
        • 1

        Information

        ID
        1348
        Time
        1000ms
        Memory
        256MiB
        Difficulty
        6
        Tags
        (None)
        # Submissions
        109
        Accepted
        32
        Uploaded By