| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1095 人关注过本帖
标题:输出结果不正确 请高手帮忙分析下原因
只看楼主 加入收藏
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:1 
1990非润年。觉得第一要证实1900 1月1日是星期几?1900年此条件是非润年,是不是润年的特例,weeK=(yd+md)%7 应该是所求上月底最后一天的星期状态,可以输出论证实下。

www.qunxingw.wang
2012-09-21 20:50
ly2222
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:217
专家分:618
注 册:2012-6-15
收藏
得分:0 
学习了
2012-09-21 21:48
非与或
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-9-21
收藏
得分:0 
以下是引用孤雁1g在2012-9-21 20:06:45的发言:

你错了是由于1990年到1992年(闰年),而如果从公元1年开始到4年(闰年),两段时间是不一样的,这样可以看出,从第三年开始你的程序就不适用了,你是以为1990年第一天跟公元1年第一天都是星期1,自然接下来的月数第一天是星期几也就一样了,但是1990对1,1991对2,1992对3,看到了吧,1992年是闰年,而3年不是闰年,所以从1992年程序就错了。
改成:yd=((y-1)+(y-1)/4-(y-1)/100+(y-1)/400);这样就不会错了!!
是从第三年结果就不对了 ,但是你说的原因我还是没看明白,确定某一天是星期一,间隔N天是星期几不就是N%7吗? 而且润平年我这也有判断啊 还请赐教
2012-09-21 21:59
aa59710014
Rank: 1
等 级:新手上路
帖 子:57
专家分:6
注 册:2012-8-30
收藏
得分:0 
好复杂

为热爱而坚持!
2012-09-21 22:02
红星
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-21
收藏
得分:0 
vc是c语言还是c++?

2012-09-21 22:05
qdg008
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-8-25
收藏
得分:4 
程序代码:
    for(i=1990;i<y;i++){
        if(y%4==0 && y%100!=0 || y%400==0){
            yd+=366;
        }else
            yd+=365;
    }
改为:
程序代码:
    for(i=1990;i<y;i++){
        if((i%4==0 && i%100!=0) || i%400==0){
            yd+=366;
        }else
            yd+=365;
    }

收到的鲜花
  • 非与或2012-09-21 23:35 送鲜花  2朵   附言:终于找到问题所在了 非常感谢
2012-09-21 22:36
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:0 
for(i=1990;i<y;i++){if(y%4==0 && y%100!=0 || y%400==0){               \\我可以问问为什么用y,而不是用i?在循环体内
             yd+=366;
         }else
             yd+=365;
     }
 

        
2012-09-22 08:29
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:0 
对不起,我没看到16楼的帖子,说了句废话
2012-09-22 08:31
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
以下是引用wtw199186在2012-9-22 08:29:13的发言:

for(i=1990;i<y;i++){if(y%4==0 && y%100!=0 || y%400==0){               \\我可以问问为什么用y,而不是用i?在循环体内
             yd+=366;
         }else
             yd+=365;
     }
 

        

17楼正解,电脑反馈给你的消息就是判断闰年出错了。
你说1990和1991都正确,你输入过闰年么,找错就是要输入各种情况的数值进行判断。
还有你没有测试每段程序 就一起结合起来用了。这种找错是很麻烦的。

[ 本帖最后由 xtjopt 于 2012-9-22 12:05 编辑 ]
2012-09-22 12:03
joinking
Rank: 2
来 自:广东汕尾
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-9-16
收藏
得分:0 
10楼说的对

彪悍的人生不需要解释
2012-09-22 15:20
快速回复:输出结果不正确 请高手帮忙分析下原因
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018231 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved