| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1197 人关注过本帖
标题:杭电1201(18岁生日)
取消只看楼主 加入收藏
conquerorbzm
Rank: 2
等 级:论坛游民
帖 子:35
专家分:33
注 册:2010-7-23
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:1 
杭电1201(18岁生日)
请大家帮我看看,我觉得结果是对的,但它给我wa,是否哪里还有漏洞,若能帮我找出来十分感谢。
#include"stdio.h"
int leap(int n)                                        //这是一个判断是否是闰年的函数。
{    int a;
    if(n%4==0 && n%100!=0 || n%400==0)
        a=1;
    else a=0;
    return(a);
}
int main()
{    int leap(int n);
    int i,j,k,year,day,month;
    int b,c,d,n,sum;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d-%d-%d",&year,&month,&day);
        sum=0;b=leap(year);d=leap(year+18);            //b是判断第一年是否是闰年,d是第18岁是否是闰年。
        if(b==1 && month==2 && day==29)            
        {printf("-1\n");continue;}
        for(i=0;i<18;i++)                            //这里是求总天数。
        {
            if(leap(year)==1)
                sum+=366;
            else sum+=365;
            year++;
        }
        if(b==1 && month>2)                            //这里排除虽然第一年和最后一年虽然是润年,但生日,不符合要求的,减去多余一天。
            sum-=1;
        if(d==1 && (month<=2 && day<29))
            sum-=1;
        printf("%d\n",sum);
    }
    return 0;
}
            
搜索更多相关主题的帖子: 生日 
2010-08-02 14:57
conquerorbzm
Rank: 2
等 级:论坛游民
帖 子:35
专家分:33
注 册:2010-7-23
收藏
得分:0 
谢谢版主,哎!这鸟题就是容易错啊!以后会更仔细更严谨的,谢谢你拉。
2010-08-02 17:14
快速回复:杭电1201(18岁生日)
数据加载中...
 
   



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

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