Tomorrow never knows?(C程序设计进阶第2周)
来源:互联网 发布:阿里云免费证书配置 编辑:程序博客网 时间:2024/05/17 05:07
问题描述
甲壳虫的《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的日期
样例输入
2010-07-05
样例输出
2010-07-06
提示
闰年的标准:
(1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)
地球公转示意图
(2)世纪年能被400整除的是闰年。(如2000年是闰年,1100年不是闰年)
输入语句scanf(“%d-%d-%d”,&y,&m,&d)可以存储年,月,日.输出语句格式类似printf(“%d-%02d-%02d\n”,year,month,day).
源码中写了两种方法,屏蔽的那种是从网上抄的,相对更好些。
源码
// #include<stdio.h>// int main(void) {// int year, month, day;// int dayTable[2][13] = {// {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},// {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}// };// int isLeapYear, daysOfMonth;// scanf("%d-%d-%d", &year, &month, &day);// isLeapYear = (year % 4 == 0 && year % 100 != 0)|| (year %400 == 0);// daysOfMonth = dayTable[isLeapYear][month];// ++day;// if(day > daysOfMonth) {// day = 1;// ++month;// }// if(month > 12) {// month = 1;// ++year;// }// printf("%d-%02d-%02d\n", year, month, day);// return 0;// }#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; }
0 0
- Tomorrow never knows?(C程序设计进阶第2周)
- Tomorrow never knows? (C程序设计进阶 第2周)
- Tomorrow never knows?
- 编程题#4:Tomorrow never knows? C语言
- 【NOI OJ】18 Tomorrow never knows?(未知的明天)
- 编程题#4:Tomorrow never knows?
- 程序设计进阶 编程题#4:Tomrrow never knows?
- 寻找下标(C程序设计进阶第2周)
- 四大湖(C程序设计进阶第2周)
- 票统计(C程序设计进阶第2周)
- 细菌实验分组(C程序设计进阶第2周)
- 流感传染(C程序设计进阶第2周)
- 寻找下标(C程序设计进阶 第2周)
- 四大湖(C程序设计进阶 第2周)
- 发票统计(C程序设计进阶 第2周)
- 细菌实验分组(C程序设计进阶 第2周)
- 字符串中次数第2多的字母(C程序设计进阶第9周)
- 流感传染(C程序设计进阶 第2周)
- Socket中send方法发送结构体和recv接受结构体
- 代码混淆详解
- swift UITableView(八)
- Android 使用SQLiteOpenHelper打开SD卡上的数据库
- Java方法excel文件转换成xml文件
- Tomorrow never knows?(C程序设计进阶第2周)
- Java设计模式(1)-单例模式
- Android:onNewIntent()触发机制及注意事项
- [LeetCode153]Find Minimum in Rotated Sorted Array
- UVA 11549-Calculator Conundrum-floyd判重
- Linux下获取时间差(毫秒级)
- ios 隐藏顶部栏
- SSIS数据转换-查找
- EL表达式(Expresion language)