题目:某年某月某日是当年的第几天(switch月份倒序)
#includeh>
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,flag;
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 :if(flag==0)dayNumber +=28;
else dayNumber +=29;//3月的情况,请填写多行代码
case 2 :dayNumber +=31;//2月的情况,请填写一行代码
case 1 :dayNumber +=day;break;//1月的情况,请填写多行代码
default:printf("Input error!");
}
printf("%d",dayNumber);
}
第23行修改,供参考:
#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; //,flag; 修改
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 :if(judgeyear(year)==0)//if(flag==0)修改
dayNumber +=28;
else
dayNumber +=29;//3月的情况,请填写多行代码
case 2 :dayNumber +=31;//2月的情况,请填写一行代码
case 1 :dayNumber +=day;break;//1月的情况,请填写多行代码
default:printf("Input error!");
}
printf("%d",dayNumber);
return 0;
}
#include <stdio.h>
int main()
{
int year, month, day, leap, sum;
printf("请输入:");
scanf("%d,%d,%d", &year, &month, &day);
switch (month)
{
case 1:sum = 0;break;
case 2:sum = 31;break;
case 3:sum = 59;break;/*一月31天加平年28天等于59天*/
case 4:sum = 90;break;
case 5:sum = 120;break;
case 6:sum = 151;break;
case 7:sum = 181;break;
case 8:sum = 212;break;
case 9:sum = 243;break;
case 10:sum = 273;break;
case 11:sum = 304;break;
case 12:sum = 331;break;
default:printf("error\n");
}
sum = sum + day;
if (year%400 == 0 || year%4 == 0 && year%100 != 0)/*判断闰年*/
leap = 1;
else
leap = 0;
if(leap == 1 && month>2)/*当是闰年,月份大于二时,才需要加一,为一月时,不需要加一*/
sum = sum++;
printf("为今年的%d\n",sum);
return 0;
}