#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 回答

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