判断是否闰年

int leapYear(int n){  
    if(((n % 4 == 0)&&(n % 100))||(n % 400 == 0))  
           return 1;  
    return 0;  
}  

判断一个年份是否为**闰年**是C语言中常见的逻辑问题。下面是完整的判断方法和解释。 --- ### ✅ 闰年的规则(公历/格里高利历): 1. **能被4整除**的年份闰年; 2. **但是**,能被100整除的年份**不是闰年**; 3. **但是但是**,能被400整除的年份**仍然是闰年**。 换句话说: - 如果年份能被400整除 → 是闰年 ✅ - 否则如果能被100整除 → 不是闰年 ❌ - 否则如果能被4整除 → 是闰年 ✅ - 其他情况 → 不是闰年 ❌ 例如: - 2000年 → 能被400整除 → ✅ 闰年 - 1900年 → 能被100整除但不能被400整除 → ❌ 平年 - 2024年 → 能被4整除且不能被100整除 → ✅ 闰年 - 2025年 → 不能被4整除 → ❌ 平年 --- ### ✅ C语言实现代码: ```c #include <stdio.h> int is_leap_year(int year) { if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { return 1; // 是闰年 } else { return 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; } ``` --- ### 🔍 代码解释: - `year % 4 == 0`:能被4整除 - `year % 100 != 0`:不能被100整除 - `year % 400 == 0`:能被400整除 - 使用逻辑运算符组合:`(A 且 非B) 或 C` 等价于: ```c (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ``` 这个表达式完全符合闰年定义。 --- ### ✅ 更简洁写法(一行判断): ```c return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); ``` 也可以用嵌套三目运算符(不推荐用于可读性差): ```c return (year % 400 == 0) ? 1 : (year % 100 == 0) ? 0 : (year % 4 == 0) ? 1 : 0; ``` 但建议使用清晰的 `if-else` 或布尔表达式。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值