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的相等性。