C++ 无法弄清楚为什么它会给出误报(新手)
C++ Can't figure out why its giving false positive (newbie)
嘿,所以我最近开始学习 C++,但我不明白为什么这个问题总是给出误报。
也许有人可以帮忙?
// [Included stuff]
using namespace std;
int main() {
int erg = 5;
int inp;
cout << "Answer: 3 + 2: ";
cin >> inp;
if (inp == erg) {
cout << "True!";
};
if (inp <= erg || inp >= erg) {
cout << "False!";
}
else {
};
}
这个if语句中的条件
if (inp <= erg || inp >= erg) {
cout << "False!";
}
表示inp可以等于任意数。那就是条件总是计算为真所以封闭的语句
cout << "False!";
输出。
看来你的意思是
if (inp != erg) {
cout << "False!";
}
或(这只是因为太复杂而令人困惑)
if (inp < erg || inp > erg) {
cout << "False!";
}
或者你可以这样写
if (inp == erg) {
cout << "True!\n";
}
else if ( inp < erg ) {
cout << "False! Less than the result\n";
}
else {
cout << "False! Greater than the result\n";
}
如果你有这样的情况
inp == erg
那么它的否定看起来像
!( inp == erg )
或更具可读性
not ( inp == erg )
与
相同
inp != erg
写就够了
if (inp == erg) {
cout << "True!\n";
}
else {
cout << "False!\n";
}
注意右大括号后的分号是多余的。
术语
if (inp <= erg || inp >= erg) {
cout << "False!";
}
总是正确的。对于 [-infinite,erg]
范围内的每个 inp
值,术语 inp <= erg
都为真。对于 [erg,infinite]
范围内的每个 inp
值,术语 inp >= erg
都为真。因此,对于 [-infinite,infinite]
范围内的每个 inp
值,项 inp <= erg || inp >= erg
都为真。
祝你在 C++ 中玩得开心。
if (inp <= erg || inp >= erg)
意味着小于或等于或大于或等于,因此实际上它总是评估为真。仅使用 <(小于)and/or > 大于或使用不等于( != ),这样代码将是
if (inp < erg || inp > erg)
甚至更简单
if (inp != erg )
嘿,所以我最近开始学习 C++,但我不明白为什么这个问题总是给出误报。
也许有人可以帮忙?
// [Included stuff]
using namespace std;
int main() {
int erg = 5;
int inp;
cout << "Answer: 3 + 2: ";
cin >> inp;
if (inp == erg) {
cout << "True!";
};
if (inp <= erg || inp >= erg) {
cout << "False!";
}
else {
};
}
这个if语句中的条件
if (inp <= erg || inp >= erg) {
cout << "False!";
}
表示inp可以等于任意数。那就是条件总是计算为真所以封闭的语句
cout << "False!";
输出。
看来你的意思是
if (inp != erg) {
cout << "False!";
}
或(这只是因为太复杂而令人困惑)
if (inp < erg || inp > erg) {
cout << "False!";
}
或者你可以这样写
if (inp == erg) {
cout << "True!\n";
}
else if ( inp < erg ) {
cout << "False! Less than the result\n";
}
else {
cout << "False! Greater than the result\n";
}
如果你有这样的情况
inp == erg
那么它的否定看起来像
!( inp == erg )
或更具可读性
not ( inp == erg )
与
相同inp != erg
写就够了
if (inp == erg) {
cout << "True!\n";
}
else {
cout << "False!\n";
}
注意右大括号后的分号是多余的。
术语
if (inp <= erg || inp >= erg) {
cout << "False!";
}
总是正确的。对于 [-infinite,erg]
范围内的每个 inp
值,术语 inp <= erg
都为真。对于 [erg,infinite]
范围内的每个 inp
值,术语 inp >= erg
都为真。因此,对于 [-infinite,infinite]
范围内的每个 inp
值,项 inp <= erg || inp >= erg
都为真。
祝你在 C++ 中玩得开心。
if (inp <= erg || inp >= erg)
意味着小于或等于或大于或等于,因此实际上它总是评估为真。仅使用 <(小于)and/or > 大于或使用不等于( != ),这样代码将是
if (inp < erg || inp > erg)
甚至更简单
if (inp != erg )