| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 729 人关注过本帖
标题:神奇的事情 一模一样的编程却还是会出错
只看楼主 加入收藏
joinking
Rank: 2
来 自:广东汕尾
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-9-16
结帖率:100%
收藏
 问题点数:0 回复次数:8 
神奇的事情 一模一样的编程却还是会出错
main()
{ int i,week=0,m=0,y=0,md=0,yd=0,day=0;
    printf("输入一个年份和月份:");
    scanf("%d %d",&y,&m);
    for(i=1990;i<y;i++)
    {if(i%4==0&&i%100!=0||i%400==0)
    {yd+=366;}
    else
     yd+=365;
    }
    for(i=1;i<m;i++)
    {switch(i)
        {case 2:
            if(i%4==0 && i%100!=0 || i%400==0)
                md+=29;
            else
                md+=28;
        break;
        case 4: case 6: case 9: case 11:
                md+=30;
        break;
        default :
                md+=31;
        }
    }
    week=(yd+md)%7;
    printf("一\t二\t三\t四\t五\t六\t日\n");
    for(i=1;i<=week;i++)
    {
        printf("\t");
    }
    switch(m)
    {
        case 2:
        if(i%4==0&&i%100!=0||i%400==0)
        day=29;
        else
        day=28;
        break;
        case 4: case 6: case 9: case 11:
        day=30;
        break;
    default :
        day=31;
    }
    for(i=1;i<=day;i++)
    {
        printf("%d\t",i);
    if((week+i)%7==0)
        printf("\n");
    }
}
这个是输入年月输出日期的编程,我从论坛看到的,然后复制下来,自己再按着编程写的,可是2012年2月前都是对的,到3月前面就突然少了一天,我怎么也找不出错误,是什么问题来的?麻烦大家帮忙解答一下
搜索更多相关主题的帖子: default 编程 
2012-09-27 12:42
joinking
Rank: 2
来 自:广东汕尾
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-9-16
收藏
得分:0 
软件问题来的,用其他软件试了一下结果没错

彪悍的人生不需要解释
2012-09-27 12:51
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
是的这个很好玩,上次y盲点。你的,1990

www.qunxingw.wang
2012-09-27 12:52
Gilbert
Rank: 2
等 级:论坛游民
帖 子:6
专家分:13
注 册:2012-9-26
收藏
得分:0 
受教了
2012-09-27 16:06
Andony
Rank: 2
等 级:论坛游民
帖 子:38
专家分:60
注 册:2012-9-12
收藏
得分:0 
以下是引用joinking在2012-9-27 12:42:34的发言:

main()
{ int i,week=0,m=0,y=0,md=0,yd=0,day=0;
    printf("输入一个年份和月份:");
    scanf("%d %d",&y,&m);
    for(i=1990;i<y;i++)
    {if(i%4==0&&i%100!=0||i%400==0)
    {yd+=366;}
    else
     yd+=365;
    }
    for(i=1;i<m;i++)
    {switch(i)
        {case 2:
            if(i%4==0 && i%100!=0 || i%400==0)//这个地方是判断当年的2月是否是闰年,此时的i指的是月份 ,这个判断出错了,不只是2012年2月         
                                              //后才会出错,应该很多地方都会出错,应该是if(y%4==0&&y%100!=0||y%400==0)
                md+=29;
            else
                md+=28;
        break;
        case 4: case 6: case 9: case 11:
                md+=30;
        break;
        default :
                md+=31;
        }
    }
    week=(yd+md)%7;
    printf("一\t二\t三\t四\t五\t六\t日\n");
    for(i=1;i<=week;i++)
    {
        printf("\t");
    }
    switch(m)
    {
        case 2:
        if(i%4==0&&i%100!=0||i%400==0)//这个地方是判断当年的2月是否是闰年,此时的 i = week ,这个判断出错了,不只是2012年2月         
                                      //后才会出错,应该很多地方都会出错,应该是if(y%4==0&&y%100!=0||y%400==0)
        day=29;
        else
        day=28;
        break;
        case 4: case 6: case 9: case 11:
        day=30;
        break;
    default :
        day=31;
    }
    for(i=1;i<=day;i++)
    {
        printf("%d\t",i);
    if((week+i)%7==0)
        printf("\n");
    }
}
这个是输入年月输出日期的编程,我从论坛看到的,然后复制下来,自己再按着编程写的,可是2012年2月前都是对的,到3月前面就突然少了一天,我怎么也找不出错误,是什么问题来的?麻烦大家帮忙解答一下


楼主看下我上边给的注释

[ 本帖最后由 Andony 于 2012-9-28 08:37 编辑 ]

重复的事情用心做,你就是赢家
2012-09-27 17:38
joinking
Rank: 2
来 自:广东汕尾
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-9-16
收藏
得分:0 
回复 5楼 Andony
谢谢

彪悍的人生不需要解释
2012-10-02 10:53
joinking
Rank: 2
来 自:广东汕尾
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-9-16
收藏
得分:0 
回复 3楼 qunxingw
嗯,谢谢

彪悍的人生不需要解释
2012-10-02 10:54
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
没头文件能编译 估计用的TC罢
2012-10-02 12:03
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
收藏
得分:0 
楼上说的对
2012-10-02 20:33
快速回复:神奇的事情 一模一样的编程却还是会出错
数据加载中...
 
   



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

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