计算机switch结构应用案例
【案例描述】
编程实现:输入年月日,计算出该日是该年的第几天。要求:
输入格式:19840302
输出格式:62
【案例分析】
1、可以根据输入的日期,先按月逐月计算天数,再加上当月的日数。
2、需要考虑闰年的2月份有29天,平年的2月份只有28天。
3、年y为闰年的条件是:y能被400整除。或者,y能被4整除,但不能被100整除。
【参考代码】
main()
{ int y,m,d;
scanf("%4d%2d%2d",&y,&m,&d);
switch(m)//逐一加上个月的天数
{ case 12:d+=30;
case 11:d+=31;
case 10:d+=30;
case 9:d+=31;
case 8:d+=31;
case 7:d+=30;
case 6:d+=31;
case 5:d+=30;
case 4:d+=31;
case 3:d+=28;
case 2:d+=31; }
if(m>2)
if(y%400==0||(y%4==0&&y%100))d++;
printf("%d",d);}
/*方法二
main()
{ int y,m,d;
scanf("%4d%2d%2d",&y,&m,&d);
d+=(m-1)*30;//先月按30天计算
d+=m/2+(m==9)+(m==11);//加上m月前的大月数
if(m>2)//闰年判断
if(y%400==0||(y%4==0&&y%100))d--;else d-=2;
printf("%d",d);}*/