C语言 昨天 PTA

7-138 昨天

分数 10

作者 黄龙军

单位 绍兴文理学院

小明喜欢上了日期的计算。这次他要做的是日期的减1天操作,即求在输入日期的基础上减去1天后的结果日期。
例如:日期为2019-10-01,减去1天,则结果日期为2019-09-30。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入1个日期,日期形式为“yyyy-mm-dd”。保证输入的日期合法,而且输入的日期和计算结果都在[1000-01-01,9999-12-31]范围内。

输出格式:

对于每组测试,在一行上以“yyyy-mm-dd”的形式输出结果。

输入样例:

1
2019-10-01

输出样例:

2019-09-30

出处:

[1] 黄龙军, 等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN:9787302564744
[2] 黄龙军.程序设计竞赛入门(Python版),北京:清华大学出版社,2021.4. ISBN:9787302571230

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

代码:

#include
int monthdays(int y1,int m1)
{
    if(m1==2)
    {
        if((y1%4==0&&y1%100!=0)||(y1%100==0))   //四闰百不闰 四百闰
            return 29;
        else
            return 28;
    }
    else if((m1<=7&&m1%2!=0)||(m1>7&&(m1%2==0)))
        return 31;
    else
        return 30;
}
int main()
{
    int y,m,d,t;
    scanf("%d",&t);
    for(int i=0;i1)      //如果是m月1日 月-1,返回月-1的天数
        {
            printf("%d-%02d-%02d\n",y,m-1,monthdays(y,m-1));
        }
            
        else        //不涉及“临界”的日期
            printf("%d-%02d-%02d\n",y,m,d-1);
    }
    return 0;
}

你可能感兴趣的:(C语言,PTA,c#,c语言)