第十八周项目四-1 定义结构体算两人生日相差多少天
2014-12-23 16:40
253 查看
问题及代码
总结:感觉好麻烦,又要考虑闰年,输入错误之类的——平年的二月29的情况还未除去——头都大了!好几次写结构体变量的时候都用错了。
思路一清晰的话,还算比较好,可就是容易晕。
对结构体的用法掌握的更多了。比较熟练了
/* *ALL rights reserved. *文件名称:shibazhouxiangmu4(2) *作者:李长鸿 *完成时间:2014.12.23 *问题描述:生日相差多少天 */ #include <iostream> using namespace std; int days(int,int,int); int change(int,int,int,int); bool R(int); void W(int,int,int); struct Date { int year; int mouth; int day; } date1 ,date2,date; int d[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int main() { cout<<"请依次输入两个人的生日:"<<endl; cin>>date1.year>>date1.mouth>>date1.day; W(date1.year,date1.mouth,date1.day); cin>>date2.year>>date2.mouth>>date2.day; W(date2.year,date2.mouth,date2.day); int a,b; if(date1.year>date2.year){date=date2;date2=date1;date1=date;} a=days(date1.year,date1.mouth,date1.day); b=days(date2.year,date2.mouth,date2.day); cout<<"两人生日相差:"<<change(date1.year,date2.year,a,b)<<"天"<<endl; return 0; } int days(int a,int b,int c) { int days=0,i; for(i=1; i<b; i++) days=days+d[i]; days=days+c; if(R(a)&&b>2) days=days+1; return days; } int change(int y1,int y2,int a,int b) { int c=0; if(y1==y2) { c=b-a; if(c<0) c=-c; } else { for(y1; y1<y2;y1++) { c=c+365; if(R(y1)) c+=1; } c=c+b-a; } return c; } bool R(int x) { if((x%4==0&&x%100!=0)||(x%400==0)) return 1; else return 0; } void W(int y,int m,int t) { while(m>12||m<0||t>d[m]||t<0||(m==2&&t>29)) { cout<<"输入有误,请再次输入正确的日期:"<<endl; cin>>y>>m>>t; } }
总结:感觉好麻烦,又要考虑闰年,输入错误之类的——平年的二月29的情况还未除去——头都大了!好几次写结构体变量的时候都用错了。
思路一清晰的话,还算比较好,可就是容易晕。
对结构体的用法掌握的更多了。比较熟练了
相关文章推荐
- 第十七周项目4-两人生日相差多少天
- 17周,项目四,结构体计算两人生日相差的天数
- 问题十五:定义一个结构体变量(包括年、月、日),输入两个人的生日,求出他们相差多少天。
- 第十七周 项目4.2日期结构体(计算两个人的生日相差多少天)
- 第十七周项目四日期结构体(2)两个人的生日相差多少天
- 第17周项目4-两人生日相差几天
- 第十七周项目四 日期结构体-(2)两人生日差几天
- 第十六周项目4 - 日期结构体(生日相差几天)
- 第十六周项目4 - 日期结构体(生日相差几天)
- 第十七周 项目四(2)--两人生日相差几天
- 第十八周项目四-1 定义结构体算当年第几天
- 结构体计算两人生日相差几天
- 第17周项目4-2两人出生日期相差多少天
- 第十七周项目 4 日期结构体——生日相差几天
- 第17周项目4.2 日期结构体——生日相差几天
- 第17周项目4两人的生日相差几天
- 第十七周项目 (2)输入两个人的生日,求出他们相差多少天。
- 求两人生日相差多少天
- 第十七周 项目四(2)--两个人生日相差多少天(贺老师版)
- 第十七周项目四(2):日期结构体:生日差几天?