mycode
#include <iostream> #include <stdlib.h> using namespace std; namespace myNum { int x=102; bool getX() { if(x/2){ cout<<x<<"是奇数"; } else { cout<<x<<"是偶数"; } } } int main() { myNum::getX(); return 0; }
#include <iostream> #include <stdlib.h> using namespace std; namespace myNum { int x=102; bool getX() { if(x/2){ cout<<x<<"是奇数"; } else { cout<<x<<"是偶数"; } } } int main() { myNum::getX(); return 0; }
2015-05-11
if括号中的只要不是0,那么都是真的,就执行其后的语句,而x/2显然是大于0的数,所以执行了第一句,跟你预期的不一样。
通常,我们用x%2来判断,也就是求余。
求余是指:一个数除以另一个数,不够除的部分就是余数,就是求余的结果。
例如:3%2,余数为1;
其计算公式为:3%2 = (2+1)%2 = 2%2+1%2 = 0+1 = 1 ;
上述公式中:
2除2是可以除尽的,没有余数,所以余数为0;
因为1小于2,1除2是不够除的,有余数,且余数是1;
两者相加,综合结果为1。
另外,数学中,整除是指:一个数除以另一个数,刚刚好的倍数;不够一倍的都将舍去,并不四舍五入。
例如:3/2,整除得1。
其计算公式为:3/2 = (2+1)/2 = 2/2+1/2 = 1+0 = 1 ;
上述公式中:
2除2是可以除尽的,整除结果为1;
因为1小于2,1除2是不够除的,不够除的都将舍去,整除结果为0;
两者相加,综合结果为1。
举报