
程序设计入门15 日期累加(几个输入憋着输出,还是一个一个地输出都A了!!!)
发布日期:2021-05-08 12:50:53
浏览次数:20
分类:原创文章
本文共 3262 字,大约阅读时间需要 10 分钟。
题目描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出
输出m行,每行按yyyy-mm-dd的个数输出。
样例输入
12008 2 3 100
样例输出
2008-05-13
一,我的代码(憋着输出)
#include<iostream>using namespace std;int month1[13][2]={ {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};int date[200][3];bool isLeap(int year){ return ((year%4==0&&year%100!=0)||year%400==0); }int main(){ int m; int year,month,day,sum; int n=0; scanf("%d",&m); int k=m; while(k--){ scanf("%d%d%d%d",&year,&month,&day,&sum); n=0; while(sum!=n){ n++; day++; if(day==month1[month][isLeap(year)]+1){ day=1; month++; } if(month==13){ month=1; year++; } } date[k+1][0]=year; date[k+1][1]=month; date[k+1][2]=day; } for(int i=m;i>=1;i--){ if(date[i][1]>9&&date[i][2]>9){ printf("%d-%d-%d",date[i][0],date[i][1],date[i][2]); } else if(date[i][1]<10&&date[i][2]>9){ printf("%d-0%d-%d",date[i][0],date[i][1],date[i][2]); } else if(date[i][1]>9&&date[i][2]<10){ printf("%d-%d-0%d",date[i][0],date[i][1],date[i][2]); } else{ printf("%d-0%d-0%d",date[i][0],date[i][1],date[i][2]); } if(i!=1) printf("\n"); } return 0;}
二,别人的代码(一个一个地输出)
#include<stdio.h>#include<math.h>#include<iostream>using namespace std;bool judge(int year){ if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return true; } return false;}int main(){// freopen("E:\input.txt", "r", stdin); int m; cin >> m; int a[][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; while (m--) { int year, month, day, num; cin >> year >> month >> day >> num; int b = 0, i = 0; if (judge(year)) { b = 1; } if (num <= a[b][month - 1] - day) { day += num; } else { num -= (a[b][month - 1] - day); if (month == 12) { month = 0; i = 0; year++; if(judge(year)) { b = 1; } else { b = 0; } } month++; day = 0; for (i = month - 1; ; i++) { if (num > a[b][i]) { num -= a[b][i]; if (month == 12) { month = 0; i = -1; //因为for循环会增1 year++; if(judge(year)) { b = 1; } else { b = 0; } } month++; } else { day += num; break; } } } cout << year << "-"; if (month < 10) { cout <<"0"; } cout << month << "-"; if (day < 10) { cout << "0"; } cout << day << endl;; } return 0;}
A掉的网址:http://codeup.cn/problem.php?cid=100000578&pid=4
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月02日 12时12分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
值类型与引用类型(中)
2019-03-06
MSSQL 2005 数据库变成可疑状态
2019-03-06
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2019-03-06
秋色园引发CPU百分百命案的事件分析与总结
2019-03-06
安装jdk并配置环境变量
2019-03-06
稀疏数组
2019-03-06
js的严格模式
2019-03-06
ETL工具-KETTLE教程实例实战1----术语和定义
2019-03-06
idea的安装和无限期试用
2019-03-06
Oracle VM VirtualBox安装PVE虚拟机
2019-03-06
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2019-03-06
Android MediaPlayer setDataSource failed
2019-03-06
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
2019-03-06
【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
2019-03-06
如何查看jsplumb.js的API文档(YUIdoc的基本使用)
2019-03-06
大前端的自动化工厂(1)——Yeoman
2019-03-06
数据仓库建模方法论
2019-03-06
数据仓库之拉链表
2019-03-06
虚拟机搭建hadoop环境
2019-03-06