编写没有IF的程序或:?条件运算符

时间:2017-10-15 09:05:18

标签: c

我想编写一个程序,如果第一个数字较大,则将第二个数字乘以2,如果第二个数字较大,则将第一个数字除以2。有没有其他方法可以在没有循环的情况下执行:或? ?

2 个答案:

答案 0 :(得分:1)

您可以使用可转换为01的布尔表达式,当值为0时,该表达式无效。

  如果第一个数字更大,

将第二个数字乘以2

second = second + (first > second) * second;
  

如果第二个更大,则将第一个除以2。

first = first - (second > first) * (first / 2);

答案 1 :(得分:0)

我认为你的问题可能会在没有if:

的情况下以这种方式解决
    int tempA=a;
    int tempB=b; 

    while (a>b){
    tempA=a*2;
    a=b;
}

while(a<b){
    tempA=a/2;
    a=b;
}
     a=tempA;