到底相差几天??

来源:互联网 发布:linux怎么新建用户 编辑:程序博客网 时间:2024/06/09 20:19
/** 程序的版权和版本声明部分:* Copyright (c) 2013.烟台大学计算机学院。* All rights reserved.* 文件名称:输入年月日,返回这一年的第几天* 作    者:冯冬影* 完成日期:2014 年 3月 8日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述:  输入两个人年月日* 问题描述: 分别求两个人的生日是该年的第几天* 程序输出:  输出他们相差几天* 问题分析:*/#include <iostream>using namespace std;struct Date{    int year;    int month;    int day;    int sum;    int days;};int main(){    int s,x,m,n;    int num1=0,num2=0,sum;    Date date[2];    int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};    date[0].sum=0;    date[1].sum=0;    cout<<"请输入第一个人的出生日期:";    cin>>date[0].year>>date[0].month>>date[0].day;    cout<<"请输入第二个人的出生日期:";    cin>>date[1].year>>date[1].month>>date[1].day;    //计算days    if(date[0].year==date[1].year)    {        for(int j=0; j<2; j++)        {            for(int i=1; i<date[j].month; i++)            {                date[j].sum+=a[i];            }            if((date[j].year/400==0)||(date[j].year/4==0&&date[j].year/100!=0))                date[j].sum+=1;            date[j].days=date[j].sum+date[j].day;        }        s=date[0].days-date[1].days;        if(s>0)            cout<<"第一个人比第二个人小"<<s<<"天!"<<endl;        else if(s==0)            cout<<"两人同一天生日!"<<endl;        else        {            x=-s;            cout<<"第一个人比第二个人大"<<x<<"天!"<<endl;        }    }    else    {        if(date[0].year>date[1].year)        {            m=date[0].year;            n=date[1].year;        }        else        {            m=date[1].year;            n=date[0].year;        }        for(n; n<m; n++)        {            if ((n/400==0)||(n/4==0&&n/100!=0))                num1++;            else num2++;        }        sum=366*num1+365*num2;        for(int j=0; j<2; j++)        {            for(int i=1; i<date[j].month; i++)            {                date[j].sum+=a[i];            }            if((date[j].year/400==0)||(date[j].year/4==0&&date[j].year/100!=0))                date[j].sum+=1;            date[j].days=date[j].sum+date[j].day;        }        s=date[0].days-date[1].days;        if(s<=0)            s=-s;        if(date[0].year>date[1].year)            cout<<"第二个人比第一个大"<<sum+s<<"天"<<endl;        else            cout<<"第二个人比第一个小"<<sum+s<<"天"<<endl;    }    return 0;}

运行结果

心得:分析了这个题,可是有的地方就是用程序写不出来,还是借鉴了一下同学的,嘿嘿,看来得勤练啊

0 0
原创粉丝点击