如果条件如何写多个

use*_*416 4 c++

我有两个变量A,B我想写一个代码,如果两个变量之一相等

151 or 156 or 720
Run Code Online (Sandbox Code Playgroud)

而另一个不等于这些数字之一,则第三个变量C = 0等于1.

所以举个例子

1) if A = 151 and B = 700 then C = 1 
2) if A = 151 and B = 720 then C = 0
3) if A = 140 and B = 700 then C = 0
Run Code Online (Sandbox Code Playgroud)

这是代码

int A = 0
cin >> A;
int B = 0
cin >> B;
int C=0;
int DECKlist[3] = {151,156,720}
for(int d=0; d<3;d++){
      if(A== DECKlist[d]){
           for(int w=0; w<3;w++){
                if(B==DECKlist[w]) C=0;
                 else C=1;
            }
       }
       if(B== DECKlist[d]){
           for(int w=0; w<3;w++){
                if(A==DECKlist[w]) C=0;
                 else C=1;
            }
       }
}
Run Code Online (Sandbox Code Playgroud)

这个可以吗?还有其他更好的方法吗?

M O*_*ehm 5

这是异或,异或.在C++中没有逻辑XOR,但您可以在您的情况下使用逐位XOR,并利用逻辑运算符的结果bool将映射到0或1 的事实:

#include <iostream>

int main()
{
    int A, B, C;

    std::cin >> A;
    std::cin >> B;

    A = (A == 151 || A == 156 || A == 720);
    B = (B == 151 || B == 156 || B == 720);

    C = A ^ B;

    std::cout << C << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我在这里使用了一个简单的表达式来检查数字是否是三个提供的数字之一.对于要检查的较大数字集,您可以使用,等等std::set.