为了账号安全,请及时绑定邮箱和手机立即绑定

哪里错了 找不到啊 请帮我看一下 谢谢大家QAQ

哪里错了 找不到啊 请帮我看一下 谢谢大家QAQ

C++
啾里子 2016-01-02 00:06:12
#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),这样()作为域限定符,就会把把括号内的语句作为一个整体

查看完整回答
反对 回复 2016-01-05
?
啾里子

TA贡献1条经验 获得超0个赞

而且为什么前两个要用&& 第三个要用|| 在这之中怎么判断0和1啊。。

查看完整回答
反对 回复 2016-01-02
  • 2 回答
  • 0 关注
  • 1329 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信