题解 | 今年的第几天?关键闰年的判断
今年的第几天?
https://www.nowcoder.com/practice/ae7e58fe24b14d1386e13e7d70eaf04d
#include <iostream>
using namespace std;
// 引用传递,改变值
void nextDay(int& year, int& month, int& day) {
// 不定长度数组,需要初始化 存储天数与月份的关系
int dayOfMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// 1.c语言没有bool类型,可以用int 2.与 优先级比 或 高,可以加括号,也可以不加
bool isLeap = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
if (isLeap) {
dayOfMonth[2] = 29; // 闰年 2月份 多一天 29
} else {
dayOfMonth[2] = 28;
}
day++;
if (day > dayOfMonth[month]) { // 天数超限,回归下个月
day = 1;
month++;
}
if (month > 12) { // 月份超限,回归下一年
month = 1;
year++;
}
}
int main() {
int count, year, month, day, startMonth,
startDay; // count 统计本年天数
while (cin >> year >> month >> day) {
count = 1;
startMonth = 1;
startDay = 1;
while (startMonth != month || startDay != day) {
nextDay(year, startMonth, startDay);
count++;
}
cout << count << endl;
}
return 0;
}
#考研##复试练习#2025考研复试 文章被收录于专栏
复试ing,努力中。。。