#include<stdio.h>
int judgeyear(int year){
int flag=0;//平年返回0
if ((year%4==0 && year%100 !=0) || year%400==0)
flag=1;//闰年返回1
return flag;
}
/*本题不考虑日期的合法性,输入的日期是合法的*/
int main(){
int year,month,day;
int dayNumber=0;
scanf("%d%d%d",&year,&month,&day);
switch (month){
case 12:dayNumber +=30;
case 11:dayNumber +=31;
case 10:dayNumber +=30;
case 9 :dayNumber +=31;
case 8 :dayNumber +=31;
case 7 :dayNumber +=30;
case 6 :dayNumber +=31;
case 5 :dayNumber +=30;
case 4 :dayNumber +=31;
case 3 :【1】;//3月的情况,请填写多行代码
case 2 :【2】;//2月的情况,请填写一行代码
case 1 :【3】;//1月的情况,请填写多行代码
default:printf("Input error!");
}
printf("%d",dayNumber);
}
思路:本题考察的switch结构,月份是倒序,注意到前几个case都无break语句;
对于m月d日,有
dayNumber=1月天数+2月天数+…+(m-1)月天数+d
例如:5月18日=31(1月)+28(平年2月)+31(3月)+30(4月)+18
注意:1月18日=18
当然,要考虑闰年平年的情况,才能确定2月的天数。
注意,写法dayNumber +=30等价于dayNumber = dayNumber +30