作者 夏仁强
单位 贵州工程应用技术学院
有一个帅小伙一直暗恋一个女孩,但他还是没有勇气向她表白“我爱你”,更别说“某某某,我爱你,如果非要在这份‘爱’上加一个期限的话,那就是一万年”这类肉麻的话,生怕说了后会是“落花有意流水无情”,连朋友都无法做。不过,在经过一阵思想斗争以后,最后终于还是鼓起勇气向那个女孩进行了表白。女孩没有直接回复他,说了如下这段话: 我知道你一直在关心我,我了解你的心意,但我已经有心仪的人了,我的答案在下面这个问题里,你写出程序看看结果就知道啦。
问题是这样的:你的生日和我的生日之差,如果x是奇数,则结果是“对不起,有缘无份”,如果是偶数,则结果是“傻瓜,我心仪的人其实是你呀!”。
请你编写一个程序判断两人是否能在一起!
输入格式:
输入有2行,第1行表示男生的出生日期,第2行表示女生的出生日期。
输出格式:
首先输出两人生日相隔的天数,如果两人的生日相隔天数是奇数,则输出“对不起,我们有缘无份”,如果是偶数,则输出“傻瓜,我心仪的人其实是你呀!”。
输入样例1:
在这里给出一组输入。例如:
2000-06-05
2000-06-06
输出样例1:
在这里给出相应的输出。例如:
我们生日相差1天
对不起,我们有缘无份
输入样例2:
在这里给出一组输入。例如:
2000-06-05
2000-06-07
输出样例2:
在这里给出相应的输出。例如:
我们生日相差2天
傻瓜,我心仪的人其实是你呀!
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h>
#include <stdlib.h>
int main() {
int year1, month1, day1, year2, month2, day2, days, sum1 = 0, sum2 = 0, i, j;
int mouth_day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 建立一个数组,分别存储每个月的天数
scanf("%d-%d-%d", &year1, &month1, &day1); // 输入男生出生日期
scanf("%d-%d-%d", &year2, &month2, &day2); // 输入女生出生日期
// 循环计算男生出生日年份每月总天数(仅含不完整年份部分)
if ((year1 % 4 == 0 || year1 % 100 == 0) && year1 % 400 == 0) {
for (i = 0; i < month1 - 1; i++) {
if (i == 1)
sum1 += 29;
else
sum1 += mouth_day[i];
}
} else {
for (i = 0; i < month1 - 1; i++) {
sum1 += mouth_day[i];
}
}
// 循环计算女生出生日年份每月总天数(仅含不完整年份部分)
if ((year2 % 4 == 0 || year2 % 100 == 0) && year2 % 400 == 0) {
for (j = 0; j < month2 - 1; j++) {
if (j == 1)
sum2 += 29;
else
sum2 += mouth_day[j];
}
} else {
for (j = 0; j < month2 - 1; j++) {
sum2 += mouth_day[j];
}
}
// 计算两个日期之间相隔的天数
if (year1 == year2) {
days = abs(sum1 + day1 - sum2 - day2); // 同年的情况
} else {
days = abs(sum1 + day1 - sum2 - day2);
for (i = year1; i < year2; i++) { // 不同年的情况,累加整年的总天数
if ((i % 4 == 0 || i % 100 == 0) && i % 400 == 0)
days += 366;
else
days += 365;
}
}
// 根据相隔天数的奇偶性输出结果
if (days % 2 == 0)
printf("我们生日相差%d天\n傻瓜,我心仪的人其实是你呀!", days);
else
printf("我们生日相差%d天\n对不起,我们有缘无份", days);
return 0;
}