星系炸弹 C语言

本文介绍了一个用C语言编写的程序,通过Date和Days函数计算X星系中特定的贝塔炸弹(定时1000天)在2014年11月9日后的确切爆炸日期,结果为2017年8月5日。
摘要由CSDN通过智能技术生成

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

以下是我用C语言编写的程序,它的功能是先输入放置的年、月、日,再输入定时的天数,就可以得出爆炸的准确日期。


#include<stdio.h>


void Date(int * yar, int * mth, int * day, int n);

int Days(int yar, int mth);

int main(void)
{
    int yar, mth, day, n;
    scanf("%d%d%d%d", &yar, &mth, &day, &n);
    Date(&yar, &mth, &day, n);
    printf("%d %d %d\n", yar, mth, day);
    return 0;
}
void Date(int * yar, int * mth, int * day, int n)
{
    while (n)
    {
        while (*mth <= 12 && n)
        {
            while (*day <= Days(*yar, *mth) && n)
            {
                (*day)++;
                n--;
            }
            if (n)
            {
                (*mth)++;
                *day = 1;
            }
        }
        if (n)
        {
            (*yar)++;
            *mth = 1;
        }
    }
    return ;
}
int Days(int yar, int mth)
{
    if (mth == 4 || mth == 6 || mth == 9 || mth == 11)
    {
        return 30;
    }
    else if(mth != 2)
    {
        return 31;
    }
    else
    {
        if ((yar % 400 == 0) || (yar % 4 == 0 && yar % 100 != 0))
        {
            return 29;
        }
        else
        {
            return 28;
        }
    }
}


贝塔炸弹爆炸的准确日期是2017年8月5日。

Date函数用于计算爆炸的准确日期,Days函数用于返回某年某月的天数(其实这个地方可以改进一下,定义一个变量用来存放Days的返回值,能够节省很多资源,但我为了更直观就不那么做了),合理地调用函数可以让程序更加清晰。

在上面这个程序中,有一点需要注意,(*mth)++和(*yar)++和(*day)++的括号不能去掉。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值