第十一周项目5-当年第几天
2014-11-05 21:57
225 查看
定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果。
运行结果:
心得:说实话、因为考虑到闰年与平年,代码变得十分的冗长,明白会有更好的处理方法对于闰年的天数可以在平年的基础上(大于2月份)上+1,这样,代码会变得简洁明了,最重要的是,程序运行的效率会大大提高。
更改后的代码:
@ Mayuko
/* *Copyright (c) 2014,烟台大学计算机学院 *All gight reserved. *文件名称:temp.cpp *作者:邵帅 *完成时间:2014年11月5日 *版本号:v1.0 */ #include <iostream> using namespace std; int main() { int day(int y, int x, int d); int year, month, cday; cout << "输入年-月-日:" ; cin >> year >> month >> cday; cout << "这是该年的第" << day(year, month, cday) << "天。" << endl; return 0; } int day(int y, int m, int d) { int sum; if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0 && y % 100 == 0)) { switch (m) { case 1: sum = d; break; case 2: sum = d + 31; break; case 3: sum = d + 60; break; case 4: sum = d + 91; break; case 5: sum = d + 121; break; case 6: sum = d + 152; break; case 7: sum = d + 182; break; case 8: sum = d + 213; break; case 9: sum = d + 244; break; case 10: sum = d + 274; break; case 11: sum = d + 305; break; case 12: sum = d + 335; break; } } else { switch (m) { case 1: sum = d; break; case 2: sum = d + 31; break; case 3: sum = d + 59; break; case 4: sum = d + 90; break; case 5: sum = d + 120; break; case 6: sum = d + 151; break; case 7: sum = d + 181; break; case 8: sum = d + 212; break; case 9: sum = d + 243; break; case 10: sum = d + 273; break; case 11: sum = d + 304; break; case 12: sum = d + 334; break; } } return sum; }
运行结果:
心得:说实话、因为考虑到闰年与平年,代码变得十分的冗长,明白会有更好的处理方法对于闰年的天数可以在平年的基础上(大于2月份)上+1,这样,代码会变得简洁明了,最重要的是,程序运行的效率会大大提高。
更改后的代码:
/* *Copyright (c) 2014,烟台大学计算机学院 *All gight reserved. *文件名称:temp.cpp *作者:邵帅 *完成时间:2014年11月5日 *版本号:v1.0 */ #include <iostream> using namespace std; int main() { int day(int y, int x, int d); int year, month, cday; cout << "输入年-月-日:" ; cin >> year >> month >> cday; cout << "这是该年的第" << day(year, month, cday) << "天。" << endl; return 0; } int day(int y, int m, int d) { int sum; switch (m) { case 1: sum = d; break; case 2: sum = d + 31; break; case 3: sum = d + 59; break; case 4: sum = d + 90; break; case 5: sum = d + 120; break; case 6: sum = d + 151; break; case 7: sum = d + 181; break; case 8: sum = d + 212; break; case 9: sum = d + 243; break; case 10: sum = d + 273; break; case 11: sum = d + 304; break; case 12: sum = d + 334; break; } if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0 && y % 100 == 0)) { if (m>2) sum--; } return sum; }运行结果:
@ Mayuko
相关文章推荐