| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 406 人关注过本帖
标题:请大家帮忙看下哪有问题,输出结果不正确!!
只看楼主 加入收藏
非与或
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-9-21
结帖率:100%
收藏
 问题点数:0 回复次数:2 
请大家帮忙看下哪有问题,输出结果不正确!!
#include<stdio.h>
main(){
    int i,week=0,m,y,md=0,yd=0,day=0;
    printf("请输入年份和月份:");
    scanf("%d %d",&y,&m);

    for(i=1990;i<y;i++){
        if(y%4==0 && y%100!=0 || y%400==0){
            yd+=366;
        }else
            yd+=365;
    }

    for(i=1;i<m;i++){
        switch(i){
            case 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(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");
        }

    }
     
}


这个程序是打印所输入月份的月历,但是输出结果有时正确有时错误,请大家帮忙看下哪有问题 谢谢!!
搜索更多相关主题的帖子: include 
2012-09-21 11:59
非与或
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-9-21
收藏
得分:0 
有没有人啊  帮忙看看啊
2012-09-21 13:19
QQ007977
Rank: 2
等 级:论坛游民
帖 子:29
专家分:43
注 册:2012-9-9
收藏
得分:0 
#include<stdlib.h>
#include<stdio.h>
 main(){
     int i,week=0,m,y,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)//你原来用的是y应该换成i
         {
             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){//你原来用的是y应该换成i
                     md+=29;
                 }else
                     md+=28;break;
             case 4: case 6: case 9: case 11:
                 md+=30;break;
             default :
                 md+=31;
        }
      }
      week=(yd+md+1)%7;//这里少算了一天
      printf("一\t二\t三\t四\t五\t六\t日\n");
     for(i=1;i<=week;i++){
         printf("\t");
      }
      
      switch(m){
         case 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");
         }
    }     
system("pause");
}

2012-09-24 22:00
快速回复:请大家帮忙看下哪有问题,输出结果不正确!!
数据加载中...
 
   



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

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