知道 C++ 中哪种类型的三角形

Know which type of triangle is in c++

本文关键字:类型 三角形 种类 C++ 知道      更新时间:2023-10-16

好吧,我需要制作一个程序,应该知道三角形是哪种类型的三角形,用户将输入三角形每条边的大小,然后它会打印出哪种类型的三角形(斜角,等腰,等边),我是一个非常新手的"程序员"(不到半个月),反正这就是我所拥有的:

#include <iostream>

using namespace std;
int main(){
    int num1;
    int num2;
    int num3;
    cout << "first number" << endl;
    cin >> num1;
    cout << "second number" << endl;
    cin >> num2;
    cout << "third number"  << endl;
    cin >> num3;
    if (num1 == num2 == num3){
        cout << "it's equilateral" << endl;
    }
    else if (num1 != num2 != num3){
        cout << "it's scalene" << endl;
    }
    return 0;
}

为什么我的代码无法正常工作? 例如:我输入 1 作为第一个,然后输入 1 作为第二个,然后输入 2 作为第三个,它给了我它是 scalene,但是如果我写 num1 != num2 != num3,我知道这可能很愚蠢,但我只是在学习。谢谢。

将代码更改为

if (num1 == num2 && num2 == num3){
    cout << "it's equilateral" << endl;
}
else if (num1 != num2 || num2 != num3){
    cout << "it's scalene" << endl;
}

因为当你写n == m == k编译器会把它看作(n==m) ==kn == m是一个布尔值(真或假,0或1)。然后将其与k进行比较.

问题出在 2 个表达式中:

num1 == num2 == num3 &num1 != num2 != num3

如果输入 1、1、2

第一个表达式将是 1 == 1,这是真的,然后是真 == 2,这是假

对于第二个表达式:

1 != 1 这是假的

,然后是假的 != 3 这是真的,所以你会得到字符串"scalene"