用C++编写学者A去国外求学,假定离开祖国的日子为公元A年B月C日,返回的日子为公元X年Y月Z日。请计算A出国求学的总天数(含离开和返回当天)。
时间: 2024-05-27 22:14:45 浏览: 39
#include <stdio.h>
int isLeapYear(int year) { // 判断是否为闰年
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}
int main() {
int A, B, C, X, Y, Z;
int days = 0; // 总天数
int monthDays[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月的天数
scanf("%d%d%d%d%d%d", &A, &B, &C, &X, &Y, &Z); // 输入
for (int i = A; i <= X; i++) { // 计算整年的天数
days += (isLeapYear(i) ? 366 : 365);
}
for (int i = 1; i < B; i++) { // 计算离开当年剩下的天数
days -= monthDays[i];
if (i == 2 && isLeapYear(A)) { // 如果是闰年2月,天数加1
days++;
}
}
days -= C - 1; // 离开当月剩下的天数
for (int i = 1; i < Y; i++) { // 计算返回当年已过天数
days -= monthDays[i];
if (i == 2 && isLeapYear(X)) { // 如果是闰年2月,天数加1
days++;
}
}
days -= monthDays[B] - C + 1; // 返回当月已过天数
days += Z; // 返回当天
printf("%d\n", days); // 输出
return 0;
}
阅读全文