根据历法,凡是1、3、5、7、8、10、12月,每月31天;凡4、6、9、11月,每月30天;2月闰年29天,平年28天。 闰年判断方法是: 如果年号能被400整除,此年为闰年 如果年号能被4整除,而不能被100整除,此年为闰年; 否则不是闰年。 程序输入年、月,输出该月的天数。如果月份不为1~12之间的数字则转换为正确的月份,如13对应1月,不考虑月份为负数的情况。 例如: 输入:1992 3 输出:days:31 输入:2001 14 输出:days:28
注意不要忘记输出 "days:"
可以通过数组的方式实现,注意存放时是从零开始,二月month=1,month==1,若相等就唯一,不等就为零,就可以使得我们只需要一个数组就可以完成目标。
#include<stdio.h>
int main(){
int month2[13]={31,28,31,30,31,30,31,31,30,31,30,31};
int year,month;
scanf("%d %d",&year,&month);
month=month%12-1;
printf("days:");
if(year%400==0||(year%4==0&&year%100!=0)){
printf("%d",month2[month]+(month==1));
}
else{
printf("%d",month2[month]);
}
return 0;
}
数组的方式需要我们存入数组,下面我们考虑不需要数组的方式。用switch case语句
#include<stdio.h>
int main(){
int year,month;
scanf("%d %d",&year,&month);
month=month%12;
printf("days:");
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31");
break;
case 4:
case 6:
case 9:
case 11:
printf("30");
break;
case 2:
if(year%400==0||(year%4==0&&year%100!=0)){
printf("29");
}
else{
printf("28");
}
break;
}
return 0;
}