| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 322 人关注过本帖
标题:简化优化程序
取消只看楼主 加入收藏
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
结帖率:78.13%
收藏
已结贴  问题点数:20 回复次数:1 
简化优化程序





从键盘输入一个日期,格式为yyyy-M-d
要求计算该日期与1949年10月1日距离多少天
例如:
用户输入了:1949-10-2
程序输出:1
用户输入了:1949-11-1
程序输出:31
帮忙优化简化一下程序,这个程序觉得有点繁琐了

#include <stdio.h>
main()
{
    int year,month,day,sum=0;
    printf("please input year,month and day\n");
    scanf("%d-%d-%d",&year,&month,&day);
    int days[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
    int flag=(year%4==0&&year%100!=0)||year%400==0?1:0;
    if(year>1949)
    {
        sum+=day;
        for(int i=0;i<month;i++)
        {
            sum+=days[flag][i];
        }
        for( i=1949;i<year;i++)
        {
            if((year%4==0&&year%100!=0)||year%400==0)
            {
                sum+=1;
            }
        }
        
        sum=sum+30+30+31;
        sum=sum+(year-1950)*365;
    }
    if(year==1949)
    {
        if(month>10)
        {
            sum+=day;
            for(int i=10;i<month;i++)
            {
                sum+=days[flag][i];
            }
        }
        else
    {
        if(month<10)
        {
            sum+=days[flag][month]-day;
            for(int i=month+1;i<10;i++)
            {
                sum+=days[flag][i];
            }
        }
        else
        {
            sum=sum+day-1;
        }
    }
    }
    if(year<1949)
    {
        sum+=days[flag][month]-day;
        for(int i=month+1;i<13;i++)
        {
            sum+=days[flag][i];
        }
        for(i=0;i<10;i++)
        {
            sum+=days[flag][i];
        }
        for(i=year+1;i<1949;i++)
        {
            if((year%4==0&&year%100!=0)||year%400==0)
            {
                sum+=366;
            }
            else
            {
                sum+=365;
            }
        }
    }
    printf("%d\n",sum);
}
搜索更多相关主题的帖子: include 用户 please 
2013-01-25 17:20
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
看完difftime依然没思路
2013-01-25 22:11
快速回复:简化优化程序
数据加载中...
 
   



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

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