/***************************************************************
C語言
AUTHOR:liuyongshui
***************************************************************/
/*
問題十四:定義一個結構體變量(包括年、月、日),要求輸入年、月、日,計算輸出該日是該年的第幾天。
*/
#include <stdio.h>
struct date
{
int year;
int month;
int day;
};
int checkyear(int n); //原函數的申明,用於檢查是閏年還是平年。是閏就返回1,反之返回0
const int Day_Of_Month[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //平年的每月對應的天數
int main()
{
int i;
int flag;
int sum_day=0;
struct date birthday;
printf("輸入你出生年月日:");
scanf("%d %d %d", &birthday.year, &birthday.month, &birthday.day);
flag=checkyear(birthday.year);
if(flag) //是閏就返回1,反之返回0
{
sum_day++;
}
for(i=0; i<birthday.month; i++)
{
sum_day+=Day_Of_Month[i];
}
sum_day+=birthday.day;
printf("經過科學計算,您是%d的第%d天出生的。\n", birthday.year, sum_day);
return 0;
}
// 函數的定義
int checkyear(int n)
{
if((n%4==0 && n%100!=0) || n%400==0) //是閏年
return 0;
else //平年
return 0;
}