读书人

!关于计算闰年的 复合关系表达式 amp;amp; 和

发布时间: 2012-04-03 12:38:19 作者: rapoo

求助!!!!关于计算闰年的 复合关系表达式 && 和 || 的用法???
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 ");

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

读书人网 >C++

热点推荐