0

如果数字小于或等于 1 或 1000,我希望它不显示总和的结果。我不知道 usingif是否是最好的方法,但这就是我尝试使用的方法,我真的不明白为什么它不起作用。||我也尝试用and编写条件&&,但那些也不起作用。

#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;
}
4

3 回答 3

3

此 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 的值之前。

于 2022-01-09T22:57:25.603 回答
1
  1. 为什么你有这么多包含?您的代码只需要 iostream。其他任何东西都可以删除。
  2. 您的 if 条件没有正确的语法。你不能写“a and b and c should be under 1000”,你必须为每个 var 写。尝试:
a >= 1 && a <= 1000 &&
b >= 1 && b <= 1000 &&
c >= 1 && c <= 1000
于 2022-01-09T23:02:00.143 回答
0

你可能想要这个:

if ( a >= 1 && b >= 1 && c >= 1 &&
     a <= 1000 && b <= 1000 && c <= 1000 )
{
    std::cout << a + b + c;
}

您的代码不正确。您必须使用正确的语法。

注意:请参阅为什么是“使用命名空间标准;” 被认为是不好的做法?

于 2022-01-09T22:55:45.690 回答