我试图在C中找到3个整数(var1,var2,var3)的最大值和最小值。为了让事情变得有点兴趣,我正在用1行编写逻辑。
(var1>var2)?((var1>var3)?(max=var1):(max=var3)&&(min=var2)):((var2>var3)?(max=var2):(max=var3)&&(min=var1));
为了简化调试,这里有几行无聊的版本
(var1>var2)?
((var1>var3)?
(max=var1):
(max=var3)&&(min=var2)
):
((var2>var3)?
(max=var2):
(max=var3)&&(min=var1)
);
逻辑AND未执行,min返回垃圾值。 帮助
答案 0 :(得分:1)
看看无聊的版本:
(var1>var2)?
((var1>var3)?
(max=var1): // nothing gets assigned to min
(max=var3)&&(min=var2) // nothing gets assigned to min, if var3==0
):
((var2>var3)?
(max=var2): // nothing gets assigned to min
(max=var3)&&(min=var1) // nothing gets assigned to min, if var3==0
);
您可以看到,在许多情况下,没有任何内容被分配给min
。