C语言例题看不明白,逻辑表达式

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:04:20
例.判断某一年year是否闰年.闰年符合条件下面2个.一,能被4整除,但不能被100整除.二.能被4整除,又能被400整除.
可以用一逻辑表达式来表示:
(year%4==0&&year%100!=0)||year%400==0
当year为某一数值时,上面表达式值为真(1),则year为闰年,否则为非闰年.
可以加一个"!"来判断非闰年
!(year%4==0&&year%100!=0)||year%400==0
若表达式值为真(1),year为非闰年.

以上2个例题是怎么算不真假的,还有题目中100!=0什么意思.请高手帮我分析讲解.怎么计算出来的
year%4==0意思是能被4整除
year%100!=0 是不能被100整除
year%400==0 是能被400整除
那哪个是真

看看好好与或非逻辑运算这部分去,还有优先级……

明明year%100!=0的意思是:(year 整除 100) 是否不等于 0

给你加几个括号,再看看吧,唉!可能更晕人。
( ( (year%4==0) && (year%100) )!=0) || (year%400) ==0
!( ( ( (year%4==0) && (year%100) )!=0) || (year%400) )==0

PS:这个判断闰年的表达式 是正确的。

分支的真假,要看你year这个变量的值是多少。如果是一个闰年的数字值,那么这三全会是真,如果不是闰年,这三个中只要一个为假,最后全部表达的结果就是假。也就不是闰年了。

main()
{ int year==2004; /* 如果是2005呢? */
if((year%4==0&&year%100!=0)||year%400==0)
printf("是闰年\n");
else
printf("不是闰年\n");
}

这样看起来的清楚多了
!((year%4 == 0) && (year%100 != 0)) || (year%400 == 0)
year%4==0意思是能被4整除
year%100!=0 是不能被100整除
year%400==0 是能被400整除
&& 是与的意思
|| 是或
PS:我只解释了这表达式,但不认为这个表达式能实现你说的那个功能

不是“100!=0”,是“year%100!=0”别段章取意!就是“年份”除“100”的余数不等于“0”是为真。不明白你为什么看不明白。阁下还是翻翻书,先看看运算符优先级与结合性再说

你没学过语法吗?还是没学过逻辑运算?year%4==0,year%100!=0,year%400==0是三个运算式,||和&&是逻辑运算符。

逻辑运算,条件成立,真,不是得某一值为真