2016年藍橋杯省賽A組C語言(星系爆炸)計算日期

                          星系炸彈

在X星系的廣袤空間中漂浮着許多X星人造“炸彈”,用來作爲宇宙中的路標。
每個炸彈都可以設定多少天之後爆炸。
比如:阿爾法炸彈2015年1月1日放置,定時爲15天,則它在2015年1月16日爆炸。
有一個貝塔炸彈,2014年11月9日放置,定時爲1000天,請你計算它爆炸的準確日期。

請填寫該日期,格式爲 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
請嚴格按照格式書寫。不能出現其它文字或符號。

很簡單的一道水題,這裏用到了一個二維數組來進行閏年平年的計算。

#include<stdio.h>
#include<stdlib.h>

int main(){
    int m[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}};
    int year=2014,month=11,day=9;
    int flag;
    int sum=1000+day;
    flag=0;
    month--;
    while((sum-m[flag][month])>0){
        sum-=m[flag][month];
        month=(month+1)%12;

        if(!month){
            year++;
            if((year%4==0&&year%100!=0)||year%400==0)
                flag=1;
            else
            flag=0;
        }
    }
    printf("%d-%d-%d\n",year,month+1,sum);  
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章