c语言一条if-else语句解决闰年的判断

闰年的判断

先了解一下什么是闰年
普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年(如2004年、2020年就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年)。

简单的说就是能被400整除的是闰年,能被4整除且不能被100整除的也是闰年

整除想到什么,当然就是取余。一开始我也是if加else来写的,一大坨。

#include<stdio.h>
int main() {
    
    
	int n = 0;
	printf("请输入一个年份\n");
	scanf("%d", &n);
	if (n % 400 == 0) {
    
    
		printf("%d是闰年", n);
	}
	else if (n % 4 == 0 && n % 100 != 0) {
    
    
		printf("%d是闰年", n);
	}
	else {
    
    
		printf("%d不是闰年", n);
	}
	return 0;
}

后来发现好像可以简单点写,巧妙运用逻辑运算。

#include<stdio.h>
int main() {
    
    
	int n = 0;
	printf("请输入一个年份\n");
	scanf("%d", &n);
	if (n % 400 == 0 || (n % 4 == 0 && n % 100 != 0)) {
    
    
		printf("%d是闰年", n);
	}
	else {
    
    
		printf("%d不是闰年", n);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_53946852/article/details/112758683