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 <stdio.h>
int main(){//定义每月天数,数组0位置是为了占位int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int n, year, month, day;scanf( "%d", &n );for( int i = 1; i <= n; i++ ){scanf( "%d-%d-%d", &year, &month, &day );//日期形式为“yyyy-mm-dd”if( ( year % 4 == 0) && ( year % 100 != 0) || ( year % 400 ==0 ) ){ //闰年的情况arr[2] = arr[2] + 1;}if( month != 01 && day == 01 ){ //输入月份为2-12月,日期为1日month = month - 1;day = arr[month];printf( "%d-%02d-%02d\n", year, month, day );}else if( month == 01 && day == 01){ //输入是1月1日month = 12;day = arr[month];printf( "%d-%02d-%02d\n", year-1, month, day);//日期形式为“yyyy-mm-dd”}else{  //其余情况printf( "%d-%02d-%02d\n", year, month, day-1);}}return 0;
}

解题思路
此题目做法:先定义一个数组,把每个月最后一天放进去,然后输入年月日,然后分别对年月日进行判断,判断可以分别为闰年和非闰年
如果是闰年
step 1.那么将3月的01号的前一天改成29号 ;
step 2.1月1号,那么就要将年减掉一位;
step 3.2-12月1日,那么就把月减一位,减了后把数组里对应前1月的拿出来赋值给day;
step 4.其他的就直接把day减一位就好。

归属知识点
数组,循环结构,选择结构

PTA 7-138 昨天相关推荐

  1. 同样是技术出身,深夜看完张一鸣200条微博,让我越想越后怕

    来 源:仟语仟寻(ID:huoqian2014)  作 者:霍仟 这几天抽空把张一鸣的所有微博看了一遍,发现2010年的微博最好,就是他30岁左右的时候,那时候刚创业没多久,在微博上认真分享自己的思考 ...

  2. 翻看完张一鸣近10年的所有微博,感觉挺可怕的。

    来源:仟语仟寻 ID:huoqian2014 张一鸣,作为字节跳动创始人.CEO,创业短短几年,已成为互联网的一个传奇人物. 今天的文章摘选自张一鸣微博中的231句话,绝大多数都是他创业初期的思考,我 ...

  3. 获取今天,昨天,本周,上周,本月,上月时间

    1 //获取今天 2 var nowDate= new Date(); //当天日期 3 console.log(nowDate); 4 //今天是本周的第几天 5 var nowDayOfWeek= ...

  4. IEEE发布AI三原则:机器人革命中需要保护人类福祉 | 138页报告

    问耕 编译整理 量子位 出品 | 公众号 QbitAI 昨天波士顿动力机器人逆天一般的后空翻,展示了当下最为先进的机器人技术.毫无疑问,随着AI技术的发展,机器人也正在快速成长. 当然,这个过程中也会 ...

  5. 中关村连夜征集138项黑科技加入肺炎阻击战

    看点:中关村驰援武汉!AI企业亮剑,响应工信部号召. "疫情防控急需就是动员令,就是冲锋号." 今天,工信部向人工智能相关学(协)会.联盟.企事业单位号召,充分发挥人工智能赋能效用 ...

  6. C语言舞伴问题 PTA

    舞伴问题 PTA 描述 假设男士和女士的记录存放在一个数组中,设计算法实现舞伴配对,要求输出配对的舞伴,并输出没有配对的队头元素的姓名. 样例 输入样例 李敏浩 M 李钟硕 M 高欣雅 F 吴彦祖 M ...

  7. PTA题目:7-9 抢红包 (25分)

    没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10​4​​),即参与发红包和抢红包的总人数,则这些人从1 ...

  8. 如何关闭135、137、138、139、445端口

    昨天好像有比特币勒索病毒爆发...将135.137.138.139.445这些不常用的端口禁用能够预防病毒...貌似大多数高校的网络中心会在校园网及数据中心禁止外网访问这几个端口,运营商也将445端口 ...

  9. PHP获取今天,昨天,本月,上个月,本年 起始时间戳

    PHP获取今天,昨天,本月,上个月,本年 起始时间戳或日期,最新更新时间为2020-04-01 date_default_timezone_set("Asia/Shanghai") ...

最新文章

  1. iPhone上将短信内容发送到指定邮箱的方法
  2. 随机取若干条记录的SQL语句
  3. Oracle编程入门经典 第8章 索引
  4. C 语言中double类型数据占字节数为,C 语言中 double 类型数据占字节数为_____
  5. Ubuntu 14.04数据库服务器--mysql的安装和配置
  6. Apache—DBUtils框架简介
  7. android之统一字体大小
  8. 【BZOJ2095】[Poi2010]Bridges 动态加边网络流
  9. (源码)群体智能优化算法之正余弦优化算法(Sine Cosine Algorithm,SCA)
  10. 注解@PostConstruct与@PreDestroy讲解及实例
  11. 如何关掉 pyg解密小组声明窗口 (飘云阁番茄插件)
  12. 微信H5扫码支付 java
  13. 衡量测试的充分性和完整性-测试覆盖率
  14. 树莓派4B无显示屏系统安装(Raspbian)
  15. GET请求淘宝H5页面获取商品信息
  16. Flash按钮操作(画面暂停与播放)
  17. 台式计算机快捷键大全,电脑常用快捷键有哪些
  18. [动态规划] leetcode 416. 分割等和子集
  19. 电路设计_铝电解电容的失效原因
  20. SAP 字段仍作为视图字段在视图中使用 | 更改表结构重新生成 CDS View「实例」

热门文章

  1. tabbar怎么些_TabBar的使用详解
  2. 如此胆怯——致开口说英语
  3. 电波声声动人 节目精彩感人
  4. 防爆真空上料机工作原理是什么?
  5. 2022蓝牙耳机热销榜,性价比高口碑好的蓝牙耳机品牌
  6. 我喜欢听故事,但我更喜欢讲故事的人
  7. 神经网络的图像识别技术,python神经网络识别图片
  8. 如何在短时间内完成短视频app的上线及推广?
  9. 【分享】网络安全系列丛书
  10. C语言时间函数time_t格式化打印...