PTA 7-84 求某月的天数
分数 10
作者 usx程序设计类课程组
单位 绍兴文理学院
输入年份year、月份month,判断该月的天数。闰年:能被4整除但不能被100整除或者能被400整除的年份是闰年。
输入格式:
测试数据有多组,处理到文件尾。对于每组测试,输入两个整数,表示年份year和月份month。
输出格式:
对于每组测试,输出对应年月的天数。
输入样例:
2020 2
2020 4
输出样例:
29
30
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
方法1:(switch语句)
#include <stdio.h>
void year_day(int month, int year){
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31\n");//输出该月的天数
break;
case 4:
case 6:
case 9:
case 11:
printf("30\n");//输出该月的天数
break;
case 2: //2月份比较特殊
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
//闰年二月份的天数
printf("29\n");
}else{
//平年二月份的天数
printf("28\n");
}
break;
}
}
int main(){
int year, month ,day; //定义变量年月日
while(scanf("%d %d", &year, &month) != EOF){//直到测试结束
year_day(month, year);//调用函数
}
return 0;
}
方法2:(数组)——24/4/13新增
#include <stdio.h>
void mon_days(int year,int month){
int run[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
int pin[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if (year % 4 ==0 && year %100 != 0 || year %400 ==0){
printf("%d\n",run[month]);
} else {
printf("%d\n",pin[month]);
}
}
int main(){
int year,month;
while (scanf("%d %d",&year,&month) != EOF){
mon_days(year,month);
}
}
解题思路:
重点在于闰年和平年2月份的天数不一样
归属知识点:
选择结构