题目:输入年份和月份,打印该月有多少天,应先判断是不是闰年
//输入年份和月份,打印该月有多少天,应先判断是不是闰年
#include<stdio.h>
#include<stdbool.h>
bool isLeapYear(int year);//原型声明
int main(){
int year, month;
printf("请输入年份和月份(格式:年 月):");
scanf("%d %d", &year, &month);
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
printf("%d年%d月有31天。\n", year, month);
break;
case 4: case 6: case 9: case 11:
printf("%d年%d月有30天。\n", year, month);
break;
case 2:
if (isLeapYear(year)) {//是润年
printf("%d年%d月有29天。\n", year, month);
} else {//不是闰年
printf("%d年%d月有28天。\n", year, month);
}
break;
default:
printf("无效的月份。\n");
}
return 0;
}
//判断是否闰年
bool isLeapYear(int year){
//判断闰年的条件
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return true; // 是闰年
} else {
return false; // 不是闰年
}
}
首先通过scanf
函数接收用户输入的年份和月份,然后使用switch语句根据月份判断该月有多少天。
对于2月,程序会调用isLeapYear
函数来判断是否为闰年,从而确定2月的天数是28天(非闰年)还是29天(闰年)。
isLeapYear
函数通过判断年份是否能被4整除且不被100整除,或者能被400整除
来确定是否为闰年。