c语言中判断一个输入的数为偶数还是奇数的程序怎么编写
10个回答
展开全部
一、数学定义:
在数学中,定义凡是可以被2整除的,均为偶数。 反之则为奇数。
二、算法分析:
根据数学定义,以及一些C语言的知识,可以得到很多种判断一个整数的奇偶性的方法,举例如下:
1、 最常用最直观的方法。
对2取余,如果为0,表示整除,即为偶数。否则为奇数。
即 n%2==0 则为偶数。 n%2==1 则为奇数。
由于C语言规定逻辑运算中0为假,1为真,于是判断奇偶可以简化为
if(n%2) printf("n为奇数\n");
else printf("n为偶数\n");
2、效率最高的方法。
计算机中都是二进制存储,这样判断奇偶其实判断二进制的最后一位即可。所以可以用更高效的位操作来判断:
if(n&1) printf("n为奇数\n");
else printf("n为偶数\n");
3、其它方法:
根据各种数学推论,以及C语言操作,还有很多其它方法,不过都不常用,仅做了解,举几个例子如下:
n/2*2==n //利用整数除法取整的规则,如果相等,则为偶数。
((n>>1)<<1)==n //右移后再左移,如果与原值相等,则为偶数。
(n+1)/2 == n/2 //同样利用整数除法取整,相等则为偶数。
类似的还可以写出很多,不过意义并不大,因为不常用,且不高效,实际使用只会增加运行开销和维护难度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
效率最高的办法是只需要判断(num&1)是否为0就可以了,如果是0就是偶数,如果不是0就是奇数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int n;
printf("please input a number\n");
scanf("d%",&n);
if(n%2==0)
printf("the number is ou shu");
else
printf("the number is ji shu");
}
{
int n;
printf("please input a number\n");
scanf("d%",&n);
if(n%2==0)
printf("the number is ou shu");
else
printf("the number is ji shu");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2005-12-29 · 知道合伙人数码行家
关注
展开全部
返回0为偶数,返回非0为奇数
int od(int num)
{
return num%2;
}
int od(int num)
{
return num%2;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询