if(xx[i]%2)和if(xx[i]%2==1)有什么区别?就是C语言求奇数的.这两种运行出来的就不一样.如果xx[i]都是整数呢,不过有负数 我知道答案了,因为-1%2=-1的,所以后者计算方法没把负奇数计算进去因此我认

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 04:30:34

if(xx[i]%2)和if(xx[i]%2==1)有什么区别?就是C语言求奇数的.这两种运行出来的就不一样.如果xx[i]都是整数呢,不过有负数 我知道答案了,因为-1%2=-1的,所以后者计算方法没把负奇数计算进去因此我认
if(xx[i]%2)和if(xx[i]%2==1)有什么区别?就是C语言求奇数的.这两种运行出来的就不一样.
如果xx[i]都是整数呢,不过有负数
我知道答案了,因为-1%2=-1的,所以后者计算方法没把负奇数计算进去
因此我认为:如果xx数组存储的是整数,那么if(xx[i]%2)与if(xx[i]%2==1||xx[i]%2==-1)是等价的,henqideyx的回答,他的答案也是对的,只是我没把题目的条件没讲完全

if(xx[i]%2)和if(xx[i]%2==1)有什么区别?就是C语言求奇数的.这两种运行出来的就不一样.如果xx[i]都是整数呢,不过有负数 我知道答案了,因为-1%2=-1的,所以后者计算方法没把负奇数计算进去因此我认
表达式1 if(xx[i]%2)
要求的条件只要xx[i]%2的余数不是0,就执行下面的代码
表达式2 if(xx[i]%2==1)
要求条件是xx[i]%2余数是固定的1,就执行下面的代码
当XX[i]有小数位时,这两个条件就有区别了,请看举例:
当xx[i]=2.5时
2.5%2 结果为 0.5
表达式1:if(xx[i]%2)
if(xx[i]%2) 可以转换成 if(0.5),
只要IF后接的表达式的结果不为0,程序就视为非0,就会执行以下代码
表达式2:if(xx[i]%2==1)
if(xx[i]%2) 可以转换成 if(0.5==1)
这种情况下可以看得很清楚,这个表达式是条件是不成立的,就不会执行以下的代码