首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求代码详细解释!解决办法

2013-09-25 
求代码详细解释!!#include stdio.hint is_even(int x){return !(x % 2)}int main(void){int i 20if(

求代码详细解释!!

#include <stdio.h>
int is_even(int x)
{
return !(x % 2);
}
int main(void)
{
int i = 20;
if(is_even(i))
printf("Even number\n");
else
printf("Odd number\n");
}


求以上小段代码的函数返回值的解释。 C,函数调用,函数返回值
[解决办法]
判断 x是 奇数或者偶数

奇数返回 0 (false),
偶数返回 非0(true).
[解决办法]
#include <stdio.h>
int is_even(int x)
{
return !(x % 2);// x对2取余(偶数为0,奇数为1),取反之后偶数返回1(true),奇数返回0(false)
}
int main(void)
{
int i = 20;
if(is_even(i))//(偶数:真)
printf("Even number\n");
else          // (奇数:假)
printf("Odd number\n");
}


闲的蛋疼
[解决办法]

int is_even(int x)
{
/*
x % 2 是x对2取余的意思,如果x是偶数的话,那么余数是0,奇数的余数是1
前缀!是取非的意思,就是说0为假,!0为真,1为真,!1为假
因此如果x是偶数的话,那么!(x % 2)=!(0)为真
其实更有效率的写法是return !(x & 1),这样偶数也是返回为真
*/  
return !(x % 2);
}


引用:
#include <stdio.h>
int is_even(int x)
{
return !(x % 2);
}
int main(void)
{
int i = 20;
if(is_even(i))
printf("Even number\n");
else
printf("Odd number\n");
}


求以上小段代码的函数返回值的解释。

[解决办法]
(x%2)表示 x对2取余(偶数为0,奇数为1),然后加上取反运算!(x%2),取反之后偶数返回1(true),奇数返回0(false)

热点排行