使用'if'语句和"<<"时的结果错误,'>>'运算符比较 3 个整数

Result error when using 'if' statement, and '<<', '>>' operators to compare 3 integers

本文关键字:gt lt 比较 运算符 整数 语句 if 使用 结果 错误      更新时间:2023-10-16

这是一个完成了一半的代码,当输入是:i1 = 3, i2 = 5, i3 = 7时,我被困住了。

#include < iostream >
#include < string >
#include < vector >
#include < algorithm >
#include < cmath >
using namespace std;
//Comparing Integers
int main()
{
    int i1;
    int i2;
    int i3;
    cout << "Enter 3 integers: ";
    cin >> i1 >> i2 >> i3;

    int diff_3_1 = i3 - i1;
    int diff_3_2 = i3 - i2;
    if (diff_3_1 >> diff_3_2){
        cout << i1 << " is smaller than " << i2 << 'n';
    }
    if (diff_3_1 << diff_3_2){
        cout << i2 << " is smaller than " << i1 << 'n';
    }

}

两个if操作符的输出都被打印出来。我找不到错误。我知道用else if替换第二个运算符就可以了。然而,我想知道我在这件事上的错误。

结果:

1 = 3, 2 = 5, 3 = 7

diff_3_1 = 4, diff_3_2 = 2

声明1:Diff_3_1>> diff_3_2,

因此,打印"3 is small than 5"。

,

声明2:diff_3_1 & lt; & lt;(这是假的)

输出"5小于3"

>>不是比较,它有点移位。只有 > 大于。