Tomorrow never knows? (C程序设计进阶 第2周)
编程题#4:Tomorrow never knows?
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never knows?相信学了计概之后这个不会是难题,现在就来实现吧。
读入一个格式为yyyy-mm-dd的日期(即年-月-日),输出这个日期下一天的日期。可以假定输入的日期不早于1600-01-01,也不晚于2999-12-30。
输入
输入仅一行,格式为yyyy-mm-dd的日期。
输出
输出也仅一行,格式为yyyy-mm-dd的日期
样例输入
样例输出
提示
闰年的标准:
(1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)
(2)世纪年能被400整除的是闰年。(如2000年是闰年,1100年不是闰年)
可以利用一个字符变量吃掉输入的短横线(减号),输出时请活用setfill和setw 控制符。
代码:
这是参考别人的代码,我在遇到这种日期问题时,总是处理不来,需要回头看。
#include <stdio.h> //注意此头文件一定要写对,否则提交出错int main(){int year=0,month=0,day=0;scanf("%d-%d-%d", &year, &month, &day);bool leapyear = (year % 4 == 0 && year % 100 != 0) || (year % 400 ==0);switch(month){case 1:case 3:case 5:case 7:case 8:case 10:if (day == 31){month++;day = 1;} else{day++;}break;case 12:if (day == 31){year++;month = 1;day = 1;} else{day++;}break;case 2:if (leapyear){if (day == 29){month ++;day = 1;}else{day++;}} else{if (day == 28){month ++;day = 1;}else{day++;}}break;case 4:case 6:case 9:case 11:if (day == 30){month++;day = 1;} else{day++;}break;default:break;}printf("%d-%02d-%02d\n", year, month, day);return 0;}
Tomorrow never knows? (C程序设计进阶 第2周)相关推荐
- 递归习题—排队游戏(C程序设计进阶 第3周)
编程题#3:排队游戏 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在幼儿 ...
- Tomorrow never knows?(C程序设计进阶第2周)
问题描述 甲壳虫的<A day in the life>和<Tomorrow never knows>脍炙人口,如果告诉你a day in the life,真的会是tomor ...
- 流感传染(C程序设计进阶第2周)
问题描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着.在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得 ...
- 文字排版(C程序设计进阶第5周)
问题描述 给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号).请将短文重新排版,要求如下: 每行不超过80个字符:每个单词居于同一行上:在同一行的单词之间以一个空格分隔:行首和行尾 ...
- [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)...
[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这 ...
- c语言程序设计指针进阶,C语言及程序设计进阶例程-15 指向结构体的指针
贺老师教学链接 C语言及程序设计进阶 本课讲解 指向结构体变量的指针的应用 #include #include struct Student { int num; char name[12]; ch ...
- C语言及程序设计进阶例程-32 位运算及其应用
贺老师教学链接 C语言及程序设计进阶 本课讲解 位运算 #include <stdio.h> int main() {unsigned short int n = 3;int i;for( ...
- [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用
[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...
- C语言及程序设计进阶例程-17 认识链表
贺老师教学链接 C语言及程序设计进阶 本课讲解 例 建立并输出一个简单链表 #include <stdio.h> struct Student {int num;float score; ...
最新文章
- SQLServer之创建分布式事务
- 数学建模学习笔记——数学规划
- 砝码问题之一(回头发现貌似多重背包)
- Springmvc整合mybatis
- 第四十一期:深度解析5G核心网建设难点和挑战
- Linux strace命令 一
- 「代码随想录」474.一和零【动态规划】力扣详解!
- 如何将优酷独享视频kux格式转换成mp4视频
- 华为Linux笔记本拆机,华为MateBook D怎么拆机?华为MateBook D拆机图文步骤详解
- Chrome主页为360首页
- 如何理解「朝闻道,夕死可矣」?
- MyBatis-Plus的使用
- 金行健:市值缩水3000亿 中国中免过山车
- 读书|我的2022年度阅读推荐
- python 离群值_python:删除离群值操作(每一行为一类数据)
- 8个程序员专用软件/网站,个个是神器,第一个最惊喜......
- 事实劳动关系怎么认定
- 使用idea和go mod 管理go项目代码飘红解决方法
- java 二进制流转图片_java转发二进制图片流【原】
- virtual audio cable