#includebool is_leap_year(int year) { return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); }
#include#include bool is_leap_year(int year) { /* 如上 */ } int main() { int year; printf("Enter year: "); scanf("%d", &year); if (is_leap_year(year)) printf("%d is leap year\n", year); else printf("%d is not leap year\n", year); return 0; }
| 年份 | 結果 | 原因 |
|---|---|---|
| 2000 | 閏年 | 400 整除 |
| 1900 | 平年 | 100 整除但非 400 |
| 2024 | 閏年 | 4 整除、非 100 |
| 2023 | 平年 | 非 4 整除 |
閏年判斷 = **`(y%400==0) || (y%4==0 && y%100!=0)`** 單行邏輯。封裝為 `bool` 函式提升可讀性與可測試性。注意:格里高利曆 1582 年後生效,更早年份需歷史曆法處理。