| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 534 人关注过本帖
标题:蓝桥的第一道题,出错了,高手指点下
取消只看楼主 加入收藏
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
结帖率:94.44%
收藏
已结贴  问题点数:20 回复次数:2 
蓝桥的第一道题,出错了,高手指点下
月份自增的那句为什么一直都执行不到,不知道程序出的问题还是我思想出问题了,高手指点下,谢谢
程序代码:
#include<stdio.h>
void pan(int,int*,int,int);
main()
{
    int ryear[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int pyear[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int *p1=ryear,*p2=pyear;
    int (*pr)[13];
    int cyear,cyue,cri,num;//ryear为闰年,pyear为平年,cyear为出生年,cyue为出生月,cri为出生日,num为多少天
    printf("输入日期(yyyy-mm-dd):\n");
    scanf("%d-%d-%d",&cyear,&cyue,&cri);
    printf("多少天?\n");
    scanf("%d",&num);
    pan(&cyear,pr,p1,p2);//判断是否为平年、闰年,用数组指针指向对应的月份
    for(;(num>=1);){//2  天数超过1时运行下面语句
        if(cyue<13){//1  如果月份不超过12月份时
            if(cri<*(pr+cyue)){cri++;num--;}//如果当月日期没有超过月底的日期时,自增
            else{cri=1;cyue++;num--;}//如果超过了就月份自增,日期归1
        }//1
        else{cyear++;cyue=1;}//运行上面语句后,再次判断月份是否超过12月
        pan(&cyear,pr,p1,p2);
    }//2
    printf("%d-%d-%d",cyear,cyue,cri);
}
void pan(int cyear,int *p,int *p1,int *p2)//判断是否为平年闰年
{
    if(((cyear%4==0)&&(cyear%100!=0))||(cyear%400==0)){
        p=p1;
    }
    else p=p2;
}
2013-05-27 20:57
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-05-27 21:00
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
回复 4楼 q13678986740
谢谢,问题解决了,是我的指针数组和数组指针弄混了
2013-05-28 17:28
快速回复:蓝桥的第一道题,出错了,高手指点下
数据加载中...
 
   



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

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