文章

61

粉丝

137

获赞

18

访问

38.4k

头像
日期类 题解:C++实现
P1437 北京理工大学机试题
发布于2024年1月18日 16:25
阅读数 688

需注意

(1)日进位:一个月的最后一天加一天后日变为1月份加1,例如:1999 11 30; 

(2)月进位:月加1后若变为13月需要将月份变为1,年份加1,例如:1999 12 31;

#include<bits/stdc++.h>
using namespace std ;

int main(){
    int n ;
    cin >> n ;
    int year[n] ,month[n] ,day[n] ;
    int f [ ] = {0 ,31 ,28 ,31 ,30 ,31 ,30 ,31 ,31 ,30 ,31 ,30 ,31} ;
    for(int i = 0 ;i < n ;i++){
        cin >> year[i] >> month[i] >> day[i] ;
        //日进位
        if(++day[i] > f[month[i]]){
            day[i] = 1 ;
            month[i]++ ;
        }
        //月进位
        if (month[i] == 13){
            month[i] = 1 ;
            year[i]++ ;
        }
    }
    for(int i = 0 ;i < n ;i++){
        printf("%d-%02d-%02d\n" ,year[i] ,month[i] ,day[i]);
    }

    return 0 ;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发