如果数字不在两个值之间,为什么它会显示总和?
Why does it display the sum if numbers aren't between the 2 values?
我希望它在数字小于或等于 1 或 1000 时不显示总和结果。我不知道使用 if
是否是最好的方法,但这就是我尝试过的方法使用,我真的不明白为什么它不起作用。我也试过用 ||
和 &&
写条件,但这些也不起作用。
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int sum;
int a, b, c;
int main() {
cin >> a;
cin >> b;
cin >> c;
sum = a + b + c;
if ( 1 <= a, b, c <= 1000) { //also tried ( 1 <= a || b || c <= 100) and ( a, b, c >= 1 && a, b, c <= 1000)
cout<< sum;
}
else {
cout<< "can't calculate";
}
return 0;
}
你可能想要这个:
if ( a >= 1 && b >= 1 && c >= 1 &&
a <= 1000 && b <= 1000 && c <= 1000 )
{
std::cout << a + b + c;
}
您的代码不正确。您必须使用正确的语法。
注:见Why is "using namespace std;" considered bad practice?
这个if语句中的表达式
if ( 1 <= a, b, c <= 1000)
是带逗号运算符的表达式。相当于
if ( ( 1 <= a ), ( b ), ( c <= 1000 ) )
表达式的值是其最后一个操作数的值。也就是说这个if语句等价于
if ( ( c <= 1000 ) )
你的意思好像是
if ( 1 <= a && a <= 1000 && 1 <= b && b <= 1000 && 1 <= c && c <= 1000 )
{
std::cout << a + b + c << '\n';
}
注意计算和没有意义
sum = a + b + c;
检查if语句中变量a、b、c的值之前
- 为什么你有这么多的包含?
您的代码只需要 iostream。其他任何内容都可以删除。
- 您的 if 条件语法不正确。你不能写“a 和 b 和 c 应该在 1000 以下”,你必须为每个变量都这样做。尝试:
a >= 1 && a <= 1000 &&
b >= 1 && b <= 1000 &&
c >= 1 && c <= 1000
我希望它在数字小于或等于 1 或 1000 时不显示总和结果。我不知道使用 if
是否是最好的方法,但这就是我尝试过的方法使用,我真的不明白为什么它不起作用。我也试过用 ||
和 &&
写条件,但这些也不起作用。
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int sum;
int a, b, c;
int main() {
cin >> a;
cin >> b;
cin >> c;
sum = a + b + c;
if ( 1 <= a, b, c <= 1000) { //also tried ( 1 <= a || b || c <= 100) and ( a, b, c >= 1 && a, b, c <= 1000)
cout<< sum;
}
else {
cout<< "can't calculate";
}
return 0;
}
你可能想要这个:
if ( a >= 1 && b >= 1 && c >= 1 &&
a <= 1000 && b <= 1000 && c <= 1000 )
{
std::cout << a + b + c;
}
您的代码不正确。您必须使用正确的语法。
注:见Why is "using namespace std;" considered bad practice?
这个if语句中的表达式
if ( 1 <= a, b, c <= 1000)
是带逗号运算符的表达式。相当于
if ( ( 1 <= a ), ( b ), ( c <= 1000 ) )
表达式的值是其最后一个操作数的值。也就是说这个if语句等价于
if ( ( c <= 1000 ) )
你的意思好像是
if ( 1 <= a && a <= 1000 && 1 <= b && b <= 1000 && 1 <= c && c <= 1000 )
{
std::cout << a + b + c << '\n';
}
注意计算和没有意义
sum = a + b + c;
检查if语句中变量a、b、c的值之前
- 为什么你有这么多的包含? 您的代码只需要 iostream。其他任何内容都可以删除。
- 您的 if 条件语法不正确。你不能写“a 和 b 和 c 应该在 1000 以下”,你必须为每个变量都这样做。尝试:
a >= 1 && a <= 1000 &&
b >= 1 && b <= 1000 &&
c >= 1 && c <= 1000