給出年、月、日,計算該日是該年的第幾天
題目解析:
此題采用枚舉法進行每月天數的累加,其中關鍵點注意需要判斷年份是否為閏年,如果是還需要多累加1天。
代碼示例:
#include <stdio.h>
#include<stdio.h>
/* 函數sum_day:計算日期 */
int sum_day(int month, int day)
{
int day_tab[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int i;
for (i = 1; i < month; i++)
day += day_tab[i]; /* 累加所在月之前天數 */
return day;
}
/* 函數leap:判斷是否為閏年 */
int leap(int year)
{
int leap;
leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
return leap;
}
int main()
{
int year, month, day, days;
printf("input date(year,month,day):");
scanf("%d %d %d", &year, &month, &day);
printf("%d/%d/%d ", year, month, day);
days = sum_day(month, day); /* 調用函數sum_day */
if (leap(year) && month >= 3) /* 調用函數leap */
days = days + 1;
printf("is the %dth day in this year.\n", days);
return 0;
}