日期类(北理上机复试)

前言:

21考研,不论能否进复试记录一下准备路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。

题目描述:

编写一个日期类,要求按xxxx-xx-xx 的格式输出日期,实现加一天的操作。

输入描述

输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。

输出描述:

输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。

解答:

#include <stdio.h>

const int daytab[13] ={
    
    0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
    
    
	int m;
	scanf("%d", &m);
	while (m--) {
    
    
		int year, mon, day;
		scanf("%d%d%d", &year, &mon, &day);
		if (day == daytab[mon] && mon != 12)
		{
    
    
			day = 1;
			mon++;
		}
		else if (day == daytab[mon] && mon == 12)
		{
    
    
			day = 1;
			mon = 1;
			year++;
		}
		else
			day++;
		printf("%04d-%02d-%02d\n", year, mon, day);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44897291/article/details/112673001