2017-12-09 杭电OJ2005《第几天?》
来源:互联网 发布:网络银行的优势 编辑:程序博客网 时间:2024/05/16 04:02
1.题目描述
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
2.源代码
#include<iostream>using namespace std;int main(){ int y,m,d; while(scanf("%d/%d/%d",&y,&m,&d)!=EOF) //这里的EOF是为了防止TLE { int i,sum=0; //定义数组存每个月的上个月的天数,这个月肯定没过完,计数时只加上d就好 int a[12]={0,31,28,31,30,31,30,31,31,30,31,30}; for(i=0;i<m;i++) sum+=a[i]; sum+=d; //考虑闰年 if(y%400==0||(y%4==0&&y%100!=0)) if(m>2) sum++; cout<<sum<<endl; } }
3.运行截图
4.调试信息
几点注意:
1.对于输入格式会发现带有“/”号,这可如何是好,cin>>输入能不能用老师也没说哇!!!scanf却有及其精巧的控制能力,就用scanf去抓一下数字,结果发现还真能这么玩,666
2.最好设一个数组去存每个月的天数,这样算起来仅仅是for循环就好了,要注意闰年。
3.刚开始我没对while里的scanf做!=EOF的限定,结果TLE了,至于你要问我这个EOF是什么。。。。我也还没看QAQ,就是别人都是这么弄的,我也是看别人博客学来的QAQ
等我学会EOF就回来更新。。。这个我前几天翻《C++ primer plus》里面有写这个内容,就是书太厚了,还停留在80多页。。。。
阅读全文
0 0
- 2017-12-09 杭电OJ2005《第几天?》
- 杭电 2005 第几天?
- 杭电 2005 第几天?
- 杭电2005第几天
- 杭电acm2005第几天?
- 2005 杭电 第几天?
- 杭电 2005 第几天?
- 杭电 2005 第几天
- 【杭电】[2005]第几天?
- 【杭电2005】第几天?
- 【杭电2005】第几天
- 杭电 2005 第几天?
- 【杭电】2005 第几天?
- 杭电2005 第几天
- 杭电ACM2005:第几天
- 杭电2005 第几天?
- 杭电ACM 2005 第几天?
- 杭电acm_2005-一年中第几天
- java.lang.UnsatisfiedLinkError: F:\apache-tomcat-7.0.62\bin\tcnative-1.dll: Can't load IA 32-bit .dl
- Java中JMX管理器的作用,项目中有什么具体使用?
- 【原】浅谈自组织映射算法(SOM)
- 中国大学mooc网上C++第十二周作业3
- DB2问题:No start database manager command was issued
- 2017-12-09 杭电OJ2005《第几天?》
- Windows主机与Linux服务器之间传输文件-xftp4软件实现
- C# 数据类型 占位符 convert 数组声明
- 深刻理解ajax中同步和异步的区别和使用场景
- git 本地分支与远程分支
- 多元高斯分布(斯坦福machine learning week 9)
- [BZOJ3771]Triple(快速傅里叶变换FFT)
- 将mysql集成到Visual Studio2015
- C语言-基本运算