題目:
輸入年,月,日,計算輸出這一天是該年第幾天。注:需要考慮是否 是閏年的情形,閏年2月爲29天否則爲28天。
提示:用switch-case控 制結構。
思路分析:
-
判斷輸入的月份,日期是否正常
-
判斷是閏年還是平年,用leap單獨存2月的天數
-
switch結構不用break時可以連續運行,正好用在算天數上,從大的月份加到小的月份
(記得存入的整月比輸入月份小一) -
整數月份的天數加上零頭即爲總天數
代碼實現:
#include<stdio.h>
int main()
{
int year = 0, month = 0, day = 0, leap = 0, dayth = 0;
printf("Input year: ");
scanf("%d",&year);
printf("Input month: ");
scanf("%d",&month);
printf("Input day: ");
scanf("%d",&day);
if(month > 12 || month < 1)
{
printf("year out of limit\n");
}
if(day > 31 || day < 1)
{
printf(" month out of limit\n");
}
if(year%4 == 0 && year%100 != 0 || year%400 ==0)
{
leap = 29;
}
else
{
leap = 28;
}
month = month - 1;
switch(month)
{
case 11 : dayth += 30;
case 10 : dayth += 31;
case 9 : dayth += 30;
case 8 : dayth += 31;
case 7 : dayth += 31;
case 6 : dayth += 30;
case 5 : dayth += 31;
case 4 : dayth += 30;
case 3 : dayth += 31;
case 2 : dayth += leap;
case 1 : dayth += 31;
}
dayth += day;
printf("It's the %dth day of year %d'",dayth,year);
return 0;
}