能被4整除的年份是闰年,但不能被100整除的年份是平年。能被400整除的年份是闰年。C语言中,可以通过多种方法判断一个年份是否为闰年。

1、使用 if-else 语句

#include <stdio.h>

int main() {
    int year;
    printf("请输入一个年份:");
    scanf("%d", &year);

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

    return 0;
}

2、使用三元运算符

#include <stdio.h>

int main() {
    int year;
    printf("请输入一个年份:");
    scanf("%d", &year);

    (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ? 
        printf("%d 是闰年。\n", year) : 
        printf("%d 不是闰年。\n", year);

    return 0;
}

3、使用函数判断

#include <stdio.h>

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

int main() {
    int year;
    printf("请输入一个年份:");
    scanf("%d", &year);

    if (isLeapYear(year)) {
        printf("%d 是闰年。\n", year);
    } else {
        printf("%d 不是闰年。\n", year);
    }

    return 0;
}

4、使用宏定义

#include <stdio.h>

#define IS_LEAP_YEAR(y) (((y) % 4 == 0 && (y) % 100 != 0) || (y) % 400 == 0)

int main() {
    int year;
    printf("请输入一个年份:");
    scanf("%d", &year);

    if (IS_LEAP_YEAR(year)) {
        printf("%d 是闰年。\n", year);
    } else {
        printf("%d 不是闰年。\n", year);
    }

    return 0;
}

5、使用数组和查表法

此方法较少使用,但可以作为练习。

#include <stdio.h>

int leapYearTable[] = {
    // 简单起见,这里只列出几个年份的示例
    1996, 2000, 2004, 2008, 2012, 2016, 2020, 2024
};

int isLeapYear(int year) {
    for (int i = 0; i < sizeof(leapYearTable) / sizeof(leapYearTable[0]); i++) {
        if (leapYearTable[i] == year) {
            return 1;
        }
    }
    return 0;
}

int main() {
    int year;
    printf("请输入一个年份:");
    scanf("%d", &year);

    if (isLeapYear(year)) {
        printf("%d 是闰年。\n", year);
    } else {
        printf("%d 不是闰年。\n", year);
    }

    return 0;
}

推荐文档

相关文档

大家感兴趣的内容

随机列表