判断闰年
本菜鸟的第一个博客,先拿简单的题目练练手,虽然难一点的也不会
首先列出闰年的条件
- year是4的倍数;
- year不是100的倍数;
- year是四百的倍数;
其中,同时符合1,2或者符合3就称为闰年
第一个思路是按顺序嵌套判断语句,先判断符不符合第一个,再第二个、第三个,但这显然特别麻烦。第一个思路
if(year%4 == 0){
if(year%100 == 0){
if(year%400 == 0){
printf("%d is leap year", year);
}
else{
printf("%d is leap year", year);
}
}
else{
printf("%d is not leap year", year);
}
}
else{
printf("%d is not leap year", year);
}
第二个思路
逻辑运算符是个好东西,简单易懂。废话不多说,直接上代码。
if((y%100 != 0 && y%4 == 0)||(y%400 == 0)){
printf("%d is leap year", year);
}
else{
printf("%d is not leap year", year);
}
对比第一个代码是不是简介了很多!
第一个y%100 != 0 && y%4 == 0
满足了1,2两个条件,而(y%400 == 0)
则满足了3。两者不用同时满足,所以用了||(或)的逻辑运算符。
到这里,本菜鸟的第一个博客就写完了
补充
一种更简洁的方法就是调用函数
int IsLeapYear(int y){
return (y%100!=0&&y%4==0)||(y%400 == 0);
}
if(IsLeapYear(year)){
printf("%d is leap year", year);
}
else{
printf("%d is leap year", year);
}
在要求处理多个数据的时候,显然调用函数的方式更为简洁美观