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

/***************************************************************
                          C语言
   
                                         AUTHOR:liuyongshui
 问题来源:http://blog.csdn.net/sxhelijian/article/details/8620846
 ***************************************************************/
/*
    问题十五:定义一个结构体变量(包括年、月、日),输入两个人的生日,求出他们相差多少天。
*/

#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 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<person_birthday[i].month; 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;
 }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值