<==如果此题解对你有帮助请点一下这里qwq
这个暑假,我就这道题的题解没迟到,资瓷一下吧555
日期问题题解大合集
算法1
我们把每个月的天数先打个表
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
接着我们输入年、月、日
接着我们判断闰年,如果y
是闰年,a[2]
的天数是29天,否则是28天
闰年是这样判断的:
- 普通年:可以被4整除,不能被100整除
- 整百年:可以被400整除
我们得出以下代码:
if(y%4==0&&y%100!=0||y%400==0)a[2]=29;else a[2]=28;
之后我们只要把这几个月的天数和多余的天数加起来就行了
在累加的时候,我们要注意:
如样例,九月还没过完,所以我们要一直加到m-1
for(int i=1;i<=m-1;i++)
c+=a[i];
最后我们加上多余的天数d
输出c
即可
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int y,m,d;
while(cin>>y>>m>>d){
int c=0;
if(y%4==0&&y%100!=0||y%400==0)a[2]=29;else a[2]=28;
for(int i=1;i<=m-1;i++)
c+=a[i];
c+=d;
cout<<c<<endl;
}
}
各位大佬能帮我看一下是哪里出现的问题吗
这个问题主要在于
你的意思是闰年都要+1,但是没有考虑如果是1月这么办
所以要特判
m
是不是≥2感谢大佬,恍然大悟啊
妙啊
你好,这种输入没有确定第三次的都只有用cin>>..........这样来处理吗
有点没听懂qwq
嗯~就是他这个题嘛,说输入多组测试数据但又没说几组,就都用这种while(cin>>.....)这样来读取数据吗
yes
哦噢 好的欧克 谢谢你
yyds
nm
nm
nm
a[12]应该就可以了吧,最后一个月放进去也用不上。
嗯
很详细hh
qwq
没有$MD$和$LX$啊,希望能补上。分析可以加上代码。
好滴
^_^