C语言逻辑运算符问题
(year%4==0&&year%100!=0)||year%400==0,这个逻辑表达式是怎样运算的?“!”这个逻辑运算符是作用于100还是0?麻烦高手解答下,拜托了!...
(year%4==0&&year%100!=0)||year%400==0,这个逻辑表达式是怎样运算的?“!”这个逻辑运算符是作用于100还是0?麻烦高手解答下,拜托了!
展开
2个回答
展开全部
C表达式中的操作符按优先级顺序结合,本表达式中运算符的优先级顺序从高到低为:()、%、==、!=、&&、||。
所以表达式计算分解为:
temp1=year%4;
temp2=year%100;
temp3=year%400;
temp4=(temp1==0);
temp5=(temp2!=0);
temp6=(temp3==0);
temp7=(temp5&&temp6);
expr=(temp7||temp6);
所以操作符"!="的操作数为temp2和0,即(year%100)和0两个表达式;
所以表达式计算分解为:
temp1=year%4;
temp2=year%100;
temp3=year%400;
temp4=(temp1==0);
temp5=(temp2!=0);
temp6=(temp3==0);
temp7=(temp5&&temp6);
expr=(temp7||temp6);
所以操作符"!="的操作数为temp2和0,即(year%100)和0两个表达式;
2010-10-07
展开全部
整个逻辑表达式由两个逻辑条件构成:
1. 是(year%4==0&&year%100!=0),表达year能够被4整除但是不能被100整除,含义就是除了末尾两位数是00的年份外,能够被4整除的那些年份满足条件。其中!是与 = 共同构成C的关键字 != 表示“不等于”的关系。
2. year%400==0,表示能够被400整除的年份(%是求余数运算)表达式表达的含义是year除以400时余数等于0。
1和2两个条件之间的的关系是“逻辑或”,用“||”表示。任何一个year,若满足1和2两个条件之一,就使整个表达式的计算结果为“真”,在C语言中即为1。如果某个year对上述两个条件都不满足,则使表达式的计算结果为假,即为0。
题目应该要求的是闰年的年份,闰年的条件是:
年份能够被4整除但不能被100整除,或者年份能被400整除。
1. 是(year%4==0&&year%100!=0),表达year能够被4整除但是不能被100整除,含义就是除了末尾两位数是00的年份外,能够被4整除的那些年份满足条件。其中!是与 = 共同构成C的关键字 != 表示“不等于”的关系。
2. year%400==0,表示能够被400整除的年份(%是求余数运算)表达式表达的含义是year除以400时余数等于0。
1和2两个条件之间的的关系是“逻辑或”,用“||”表示。任何一个year,若满足1和2两个条件之一,就使整个表达式的计算结果为“真”,在C语言中即为1。如果某个year对上述两个条件都不满足,则使表达式的计算结果为假,即为0。
题目应该要求的是闰年的年份,闰年的条件是:
年份能够被4整除但不能被100整除,或者年份能被400整除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询