题解 | 今年的第几天?

今年的第几天?

https://www.nowcoder.com/practice/ae7e58fe24b14d1386e13e7d70eaf04d

#include<stdio.h>
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};
	//先判断是否闰年,闰年的2月是29天
	if ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0))dayofmonth[2] = 29;
	//如果天数超出
	if ((day + 1 )> dayofmonth[month]) {
		//如果月份超出
		if ((month+1) > 12) {
			year++;
			month = 1;
			day = 1;
		}
		else {
			month++;
			day = 1;

		}
		
	}
	else day++;
}
int main(){
    int next=0;
    int beginmonth=1;
    int beginday=1;
    int curyear,curmonth,curday;
    scanf("%d %d %d",&curyear,&curmonth,&curday);
    while(true){
        
        nextday(curyear,beginmonth,beginday);
        next++;
        if(beginmonth==curmonth&&beginday==curday)break;

    }
    printf("%d",next+1);
}

计算机复试机试(王道版) 文章被收录于专栏

收录王道2026年计算机复试机试的(课程)代码题解,仅供个人学习参考

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务