NOIP 2003年 普及组 第1题.求详解!!!.......说清算法.......

2024-12-28 06:21:54
推荐回答(1个)
回答1:

先讲第一个if

意思是 (x>y) 或者 ((y!=20) && (ok1==0)) && (ok2!=0) 为真 整体就为真
前部分x>y 已经不为真了。所以只需看后半部分的真假
后半部分的意思是
((y!=20) 为真 并且 (ok1==0)为真 )并且 (ok2!=0) 为真 整体才能为真
三者皆为假。

所以 || 之前为假 之后也为假 假||假=假

程序走到else if
(ok1!=0) 并且 (ok2==0) 此条件满足 所以a现在等于-1

因为else if 满足了
就不会进入下面的 else了

所以输出就是a的当前值 -1