C语言:if(i%2) putchar(i+b)……其中if括号里的i%2是什么意思?取余的话

C语言:if(i%2) putchar(i+b)……其中if括号里的i%2是什么意思?取余的话,怎么没有值判断?不是应该if(i%2=0)之类的吗?

if()其实是对括号里面判断,因为i%2只能有两个结果 0或者1,所以就简写了,如果是0,自然就不满足,就不执行if之中的语句,如果是1就执行。其实就是等于if(i%2==1)
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-06

i%2的是意思去是i除以2后余数是多少,“%”是取余运算,例如5%3的值为2,15%4的值为1。

if(i%2)这是判断i的值是奇数还是偶数,如果是奇数(i%2的值为1)就执行putchar(i+b),如果是偶数(i%2的值为0)就不执行。

如果你要不改变结果修改语句的话应该改为:

if(i%2==1) putchar(i+b);

第2个回答  2013-11-06
i%2 等价于 i%2 != 0 因为i 除以2 取余要不等于1 要不等于0 如果等于1的话()里面的内容为真(1) ; 若是用i%2 != 0 也为真 若是等于0 的话 ()里内容为假(0),i%2 != 0 也为假,不懂请追问
第3个回答  2013-11-06
可以这样写的
注意原文是这样写的
if(表达式)
也就是说只要是表达式就可以追答

因此if(i%2)是可以的
其等价格于if(i%2==1)

第4个回答  2013-11-06
楼上正解,if已经判断了i的值
相似回答