猿问

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

#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;

}


啾里子
浏览 1338回答 2
2回答

絮絮念秋风

对每一个子语句单独判断真假,&& ||都是短路的,多个没有用括号分割的条件语句,则从左往右进行判断,比如子句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),这样()作为域限定符,就会把把括号内的语句作为一个整体

啾里子

而且为什么前两个要用&& 第三个要用|| 在这之中怎么判断0和1啊。。
随时随地看视频慕课网APP
我要回答