问题十五:定义一个结构体变量(包括年、月、日),输入两个人的生日,求出他们相差多少天。

2014-11-23 22:37:10 · 作者: · 浏览: 5

/***************************************************************
C语言

AUTHOR:liuyongshui

***************************************************************/
/*
问题十五:定义一个结构体变量(包括年、月、日),输入两个人的生日,求出他们相差多少天。
*/

#include

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 j;
int flag;
int sum_day[2]={0,0};

struct date person_birthday[2];

printf("分别输入两个人的出生年月日\n");
for(i=0; i<2; i++)
{
printf("第%d人的出生日期:", i+1); //打印出第几人

scanf("%d %d %d", &person_birthday[i].year,
&person_birthday[i].month,
&person_birthday[i].day);
}
for(i=0; i<2; i++)
{
flag=checkyear(person_birthday[i].year);
if(flag) //是闰就返回1,反之返回0
{
sum_day[i]++;
}

for(j=0; j {
sum_day[i]+=Day_Of_Month[j];
}

sum_day[i]+=person_birthday[i].day;

}
for(i=0; i<2; i++)
{
printf("输出第%d人的生日第%d天\n", i+1, sum_day[i]);
}
if(sum_day[0]>sum_day[1])
{
printf("他们俩相差%d天\n", sum_day[0]-sum_day[1]);
}
else
{
printf("他们俩相差%d天\n", sum_day[1]-sum_day[0]);
}
return 0;
}


// 函数的定义
int checkyear(int n)
{
if((n%4==0 && n%100!=0) || n%400==0) //是闰年
return 0;
else //平年
return 0;
}