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

!关于计算闰年的 复合关系表达式 && 和 || 的用法?

2012-04-03 
求助!!!!关于计算闰年的 复合关系表达式 && 和 || 的用法???intmain(void){intyear,rem_4,rem_100,rem_400

求助!!!!关于计算闰年的 复合关系表达式 && 和 || 的用法???
int   main   (void)
{
        int   year,   rem_4,   rem_100,   rem_400;

        printf   ( "Enter   the   year   to   be   tested:   ");
        scanf( "%i ",&year);

        rem_4   =   year   %   4;
        rem_100   =   year   %   100;
        rem_400   =   year   %   400;

        if   (   rem_4   ==   0   &&   rem_100   !=   0   ||   rem_400   ==   0   )
                printf   ( "It 's   a   leap   year.\n ");
        else
                printf   ( "Nope,it 's   not   a   leap   year.\n ");

        return   0;
}


上面是求闰年的源程序,其中
(   rem_4   ==   0   &&   rem_100   !=   0   ||   rem_400   ==   0   )

我就是理解不了!   我认为意思是
        当rem_4等于0并且rem_100不等于0时执行下面语句,或者是条件满足rem_400等于0时执行下面语句.也就是当条件满足rem_4   ==   0   &&   rem_100   !=   0   或者rem_400   ==   0   任意一个条件时,执行下面语句!!

我知道我理解的不对   ,请问不对在那里,您的思路是什么!谢谢   !

[解决办法]
满足下述两个条件之一即可:
1.rem_4 == 0 且 rem_100 != 0
2.rem_400 == 0
[解决办法]
( rem_4 == 0 && rem_100 != 0 || rem_400 == 0 )
==》
分解:
1.rem_4 == 0 且 rem_100 != 0
2.rem_400 == 0

闰年的条件:
年份 能被4整除但是不能被100整除(条件1) 或者 能被400整除(条件2)
[解决办法]
在这种情况下,最后用括号括起来.
&&优先级高于||,故应该是

(( rem_4 == 0 && rem_100 != 0 )|| rem_400 == 0 )
[解决办法]
#include <stdio.h>
void main()
{
int year, rem_4, rem_100, rem_400;

printf ( "Enter the year to be tested: ");
scanf( "%i ",&year);
rem_4 = year % 4;
rem_100 = year % 100;
rem_400 = year % 400;

if ( (rem_4 == 0 && rem_100 != 0 || rem_400 == 0) )
printf ( "It 's a leap year.\n ");
else
printf ( "Nope,it 's not a leap year.\n ");

}
&&优先级要比||高 要加括号

热点排行