| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2193 人关注过本帖, 2 人收藏
标题:c语言竞赛题
只看楼主 加入收藏
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
结帖率:57.14%
收藏(2)
 问题点数:0 回复次数:18 
c语言竞赛题

星系炸弹

在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd  即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
搜索更多相关主题的帖子: 阿尔法 竞赛题 c语言 空间 漂浮 
2015-05-08 20:48
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
貌似很简单,为什么一敲代码就有好多情况要考虑,不知道怎样理清思路。。。。
2015-05-08 20:49
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
要考虑到过多长时间才可以月份加一,年份加一,而且月份加一的规则还不相同
2015-05-09 09:54
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
自己写的,测了几个值没发现错误,可以参考一下。

程序代码:
#include <stdio.h>

int is_leap(int year);//判断闰年

main()
{
    int year, month, day, d_day;
    int days[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
                     {31,29,31,30,31,30,31,31,30,31,30,31}};//平年第0行,闰年第1行
    printf("输入起始日期:(yyyy-mm-dd)\n");
    scanf("%d-%d-%d", &year, &month, &day);
    printf("输入相隔天数:");
    scanf("%d", &d_day);
    
    while(d_day > days[is_leap(year)][month-1] - day)//剩余天数不够进位则停止循环
    {
        d_day -= days[is_leap(year)][month-1];
        month++;
        if(month == 13)
        {
            month = 1;
            year++;
        }
    }
    day += d_day;
    
    printf("%d-%02d-%02d\n", year, month, day);
    
}

int is_leap(int year)
{
    if(year % 4 != 0 || (year % 100 == 0 && year % 400 != 0))
        return 0;
    else
        return 1;   
}


[ 本帖最后由 我爱吃青菜 于 2015-5-9 10:19 编辑 ]
2015-05-09 10:15
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
多谢大神指点
2015-05-13 19:29
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 5楼 鱼游海底
表示没读懂题目叫我们干嘛。。。。。。

他们和我说,喜欢一个女生要大胆追!
2015-05-13 19:47
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 4楼 我爱吃青菜
目前的我来写这个,还不能写得这么好,有条理而又简洁。真棒!

他们和我说,喜欢一个女生要大胆追!
2015-05-13 19:53
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
回复 6楼 我叫K
你是大神,我骄傲
2015-05-13 19:55
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
以下是引用我爱吃青菜在2015-5-9 10:15:56的发言:

自己写的,测了几个值没发现错误,可以参考一下。

#include <stdio.h>

int is_leap(int year);//判断闰年

main()
{
    int year, month, day, d_day;
    int days[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
                     {31,29,31,30,31,30,31,31,30,31,30,31}};//平年第0行,闰年第1行
    printf("输入起始日期:(yyyy-mm-dd)\n");
    scanf("%d-%d-%d", &year, &month, &day);
    printf("输入相隔天数:");
    scanf("%d", &d_day);
   
    while(d_day > days[month-1] - day)//剩余天数不够进位则停止循环
    {
        d_day -= days[month-1];
        month++;
        if(month == 13)
        {
            month = 1;
            year++;
        }
    }
    day += d_day;
   
    printf("%d-%02d-%02d\n", year, month, day);
   
}

int is_leap(int year)
{
    if(year % 4 != 0 || (year % 100 == 0 && year % 400 != 0))
        return 0;
    else
        return 1;   
}

我看不懂这里,days是个2维数组,你days[month-1]是个什么

他们和我说,喜欢一个女生要大胆追!
2015-05-13 20:08
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 8楼 鱼游海底
(⊙o⊙)…  又不是我写的  我也写不了这么好  一起学习吧

他们和我说,喜欢一个女生要大胆追!
2015-05-13 20:08
快速回复:c语言竞赛题
数据加载中...
 
   



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

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