c++的一道题...已知1900年1月1日是星期一, 输入n, 编程求自该日期开始的第n天的年月日及星期

2024-11-26 03:53:57
推荐回答(2个)
回答1:

第一个do~while和第二个do~while循环的逻辑就有错误。以n==1为例说明:进入第一个do后,由于1900不是闰年,所以everyear==365,n=n-everyear;使n==-364,因n<0而结束循环;进入第二个do后n=n-evermonth;使n==-364-31(或30或29或28)结果是个负数,因而第二个do~while循环也退出。这时day=n;使day获得了一个近400的负数,后面输出自然不可能正确……第一个循环里的year的计算也是错的,已经i++了,还来个year=i+1;,这一次就增加了两年……

回答2:

计算到1900-01-01之间的天数,再和7取余

~