C++ 了解c+中的三角形类型+;

C++ 了解c+中的三角形类型+;,c++,geometry,C++,Geometry,嗯,我需要做一个程序,应该知道三角形的类型,用户将输入三角形每边的大小,然后它将打印三角形的类型(不等边、等腰、等边),我是一个非常新手的“程序员”(不到半个月),总之这就是我的: #include <iostream> using namespace std; int main(){ int num1; int num2; int num3; cout << "first number" << endl; ci

嗯,我需要做一个程序,应该知道三角形的类型,用户将输入三角形每边的大小,然后它将打印三角形的类型(不等边、等腰、等边),我是一个非常新手的“程序员”(不到半个月),总之这就是我的:

#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;
}
#包括
使用名称空间std;
int main(){
int num1;
int num2;
int num3;
coutnum1;
coutnum2;
coutnum3;
如果(num1==num2==num3){
无法将代码更改为

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

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

cout问题在两个表达式中:

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

如果输入1、1、2

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

对于第二个表达式:


1!=1为假,然后为假!=3为真,因此您将得到字符串“scalene”

不是问题的原因,但可能值得考虑:边长
[1,1,2]
的示例实际上根本不是三角形(它是一条线)。您也不检查像[-1,6,8]、[0,4,6]或[1]这样的非三角形[1,2,5]。第二个条件应该是
num1!=num2&&num2!=num3
,否则等腰三角形将被错误地归类为不等边。@Mac,你是对的,但我认为作者明白了。实际上我们还需要测试num1和num3的相等性。