有没有大神救急(题库8. 自动找人系统)

题目描述

【题目描述】

给定三个参数a,b,c,表示年,月,日,(不考虑闰年)表示一个时间节点。他要找出在两个时间节点之间的时间(包括两个时间节点本身)。现在给定两个时间节点和一个时间,他要判断这个时间是否在这个时间段之中。

【数据格式】

输入三行,三个时间,每行有三个数,表示年月日。前两行表示两个时间节点(不一定按照第一个小于第二个的顺序给出),最后一行是这个时间发生的时间。保证合法

输出一个“Yes”或者“No”表示是否在这个时间段之中。

代码:
// #输入三行,三个时间,每行有三
// 个数,表示年月日。前两行表示两
// 个时间节点(不一定按照第一个小
// 于第二个的顺序给出),最后一行
// 是这个时间发生的时间。保证合法
#include
using namespace std;
int a1,b1,c1,a2,b2,c2,a3,b3,c3;
double e1,e2,e3;
int main(){
cin>>a1>>b1>>c1>>a2>>b2>>c2>>a3>>b3>>c3;
e1=a1+b1/12.0+c1/365.0;
e2=a2+b2/12.0+c2/365.0;
e3=a3+b3/12.0+c3/365.0;
if(e3<max(e2,e1)&&e3>min(e2,e1)){
cout<<“Yes”;

}
else cout<<"No";
return 0;

}

95分,一个样例没有过
救救我吧!!!!

1 个赞

自己慢慢看

1 个赞

判断少一个条件还有输入第一组数字大于第二组数字的情况

2 个赞

@饶濙 也可以用另外一种方法

1 个赞

@陈洪森 别直接发AC代码(代码还没格式化)

2 个赞

好的

说下 没NO的输出代码

@饶濙 把各个年份转化成数字

1 个赞
cin>>a>>b>>c;
int sum=a*10000+b*100+c;//数字拆分逆转数字拼接没问题吧
2 个赞

比如:

a=2001,b=11,c=29
sum=20011129
这样就可以利用数字直接比大小了
1 个赞

在max和min里判断了