题解 | #今年的第几天?#
今年的第几天?
https://www.nowcoder.com/practice/ae7e58fe24b14d1386e13e7d70eaf04d
#include<bits/stdc++.h> using namespace std; void NextDay(int &year,int &month,int &day) { // & 出现在定义or形参当中 表示引用的意思 出现在其他位置,表示取地址 // 存储一下 月份和天数的对应关系 int dayOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int isLeap; // 是否是闰年 isLeap = year % 400 == 0 || year % 4 == 0 && year % 100 != 0; if (isLeap) { dayOfMonth[2] = 29; } else { dayOfMonth[2] = 28; } ++day; if (day > dayOfMonth[month]) { day = 1; ++month; } if (month > 12) { month = 1; ++year; } } int main() { int year; int month; int day; while(scanf("%d%d%d",&year,&month,&day)!=EOF) { int next=1; int cur_month=1; int cur_day=1; while(true) { if(cur_month==month&&cur_day==day) { break; } NextDay(year,cur_month,cur_day); next++; } printf("%d\n",next); } return 0; }