#include <stdio.h>int main()?{? ? int year = 2014; //今年是2014年? ? if(year%4==0 && year%100 != 0 || year%400 == 0)//補(bǔ)全一下代碼? ? {? ? ? ? printf("%s\n","今年是平年")? ? }? ? else? ? {? ? ? ? printf("%s\n","今年是閏年")? ? }? ??? ??? ??? ? return 0;}
2 回答

絮絮念秋風(fēng)
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超1個(gè)贊
對(duì)每一個(gè)子語(yǔ)句單獨(dú)判斷真假,&& ||都是短路的,多個(gè)沒(méi)有用括號(hào)分割的條件語(yǔ)句,則從左往右進(jìn)行判斷,比如子句1 && 子句2 || 子句3,如果子句1是真,子句2是真,則子句1 && 子句2 的結(jié)果就是真,然后執(zhí)行真 || 子句3,結(jié)果就是真,因?yàn)閨|是短路的,只要兩個(gè)參與運(yùn)算的子句有一個(gè)為真,則結(jié)果就為真,也就是如果第一個(gè)子句結(jié)果為真,整個(gè)結(jié)果就是真,而不會(huì)執(zhí)行第二個(gè)子句,這里就是子句3,所以如果year%4==0 && year%100 != 0為真,是不會(huì)再執(zhí)行year%400 == 0。
看你的代碼,其實(shí)應(yīng)該是year%4==0 && (year%100 != 0 || year%400 == 0),這樣()作為域限定符,就會(huì)把把括號(hào)內(nèi)的語(yǔ)句作為一個(gè)整體
- 2 回答
- 0 關(guān)注
- 1368 瀏覽
添加回答
舉報(bào)
0/150
提交
取消