#include <stdio.h>int main() { int year = 2014; //今年是2014年 if(year%4==0 && year%100 != 0 || year%400 == 0)//补全一下代码 { printf("%s\n","今年是平年") } else { printf("%s\n","今年是闰年") } return 0;}
2 回答
絮絮念秋风
TA贡献4条经验 获得超1个赞
对每一个子语句单独判断真假,&& ||都是短路的,多个没有用括号分割的条件语句,则从左往右进行判断,比如子句1 && 子句2 || 子句3,如果子句1是真,子句2是真,则子句1 && 子句2 的结果就是真,然后执行真 || 子句3,结果就是真,因为||是短路的,只要两个参与运算的子句有一个为真,则结果就为真,也就是如果第一个子句结果为真,整个结果就是真,而不会执行第二个子句,这里就是子句3,所以如果year%4==0 && year%100 != 0为真,是不会再执行year%400 == 0。
看你的代码,其实应该是year%4==0 && (year%100 != 0 || year%400 == 0),这样()作为域限定符,就会把把括号内的语句作为一个整体
- 2 回答
- 0 关注
- 1329 浏览
添加回答
举报
0/150
提交
取消