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

C語言判斷閏年:函數封裝與條件邏輯

     編輯:關於C語言

C語言判斷閏年:函數封裝與條件邏輯

閏年規則:能被 400 整除,或被 4 整除但不能被 100 整除。封裝為函數 leap_year。

判斷邏輯

bool is_leap(int year) {
    return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
}

完整代碼

#include <stdio.h>

void leap_year(int year) {
    if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
        printf("%d 是閏年\n", year);
    else
        printf("%d 不是閏年\n", year);
}

int main() {
    int year;
    printf("請輸入年份:");
    scanf("%d", &year);
    leap_year(year);
    return 0;
}

測試用例

年份結果說明
2000閏年400 整除
1900平年100 整除但非 400
2024閏年4 整除非 100
2023平年4 不整除

常見錯誤

  • 只判斷 year % 4 == 0 → 1900 誤判為閏年
  • 順序錯誤:應先判 400,再判 100,最後判 4
  • 未處理負年份(天文曆法有公元前)

擴展:計算兩日期間天數

int days_in_month(int year, int month) {
    static int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    if (month == 2 && is_leap(year)) return 29;
    return days[month-1];
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved