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

时间:2013-09-24 03:46:41

标签: c++ geometry

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

#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,它给了我它的斜角肌,但是如果我写了num1!= num2!= num3,我知道这可以是愚蠢,但我只是在学习。感谢。

2 个答案:

答案 0 :(得分:2)

将您的代码更改为

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) ==k时,n == m是一个布尔值(true或false,0或1)。然后将其与k进行比较。

答案 1 :(得分:1)

问题在于2个表达式:

num1 == num2 == num3&amp; num1!= num2!= num3

如果输入1,1,2

第一个表达式为1 == 1为真,然后为真== 2为假

和第二个表达式:

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