知道 C++ 中哪种类型的三角形
Know which type of triangle is in c++
好吧,我需要制作一个程序,应该知道三角形是哪种类型的三角形,用户将输入三角形每条边的大小,然后它会打印出哪种类型的三角形(斜角,等腰,等边),我是一个非常新手的"程序员"(不到半个月),反正这就是我所拥有的:
#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) ==k
,n == m
是一个布尔值(真或假,0或1)。然后将其与k
进行比较.
问题出在 2 个表达式中:
num1 == num2 == num3 &num1 != num2 != num3
如果输入 1、1、2
第一个表达式将是 1 == 1,这是真的,然后是真 == 2,这是假
的对于第二个表达式:
1 != 1 这是假的,然后是假的 != 3 这是真的,所以你会得到字符串"scalene"
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 模板元程序查找相似的连续类型名称
- 是否可以从int转换为enum类类型
- 借助直接采样或布雷森汉姆类型采样在 3D 三角形上生成采样点
- 我的程序C++找到三角形的类型,我的if-else语句遇到问题
- 知道 C++ 中哪种类型的三角形