首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言三種實現閏年判斷算法:1000-2000年範圍實戰

     編輯:關於C語言

C語言閏年判斷:三種實現邏輯與代碼實戰

閏年計算是條件邏輯練習的經典案例。本文展示三種遞進式實現方式,從嵌套分支到邏輯運算優化,並說明格里曆規則邊界條件。

閏年規則

  1. 能被 400 整除 → 閏年
  2. 能被 4 整除但不能被 100 整除 → 閏年
  3. 其他 → 平年

口訣:「四年一閏,百年不閏,四百年再閏」。

版本一:嵌套 if-else 結構


for (year = 1000; year <= 2000; year++) {
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            if (year % 400 == 0) leap = 1;
            else leap = 0;
        } else leap = 1;
    } else leap = 0;
    if (leap) printf("%d ", year);
}

邏輯清晰但層級較深。

版本二:分離判斷條件


for (year = 1000; year <= 2000; year++) {
    if (year % 4 == 0 && year % 100 != 0) printf("%d ", year);
    if (year % 400 == 0) printf("%d ", year);
}

利用互斥條件分開判斷,減少嵌套。

版本三:邏輯運算一行式


for (year = 1000; year <= 2000; year++) {
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
        printf("%d ", year);
}

最簡潔,運算子優先級:&& 高於 ||,邏輯正確。

格里曆修正補充

對於極大年份(> 10000),需考慮:

  • 能整除 3200 且整除 172800 → 閏年
  • 本範例範圍 1000-2000 無需考慮

輸出格式控制

計數器配合換行邏輯,每 10 個換行,提升可讀性:


if (count % 10 == 0) printf("\n");

三種版本各有優勢:教學用版本一,工程用版本三,理解邏輯等價關係是關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved