文章

19

粉丝

225

获赞

20

访问

53.3k

头像
打印日期
P1410 华中科技大学机试题
发布于2023年3月21日 10:13
阅读数 2.7k

 一些值得注意的点:%02d格式输出时不足两位的座便1补0,这样就可以减少后面对于t是否小于10的判断.

思路:先将前i个月的总天数存到mon[]数组中,进行比较,然后判断输入的天数属于哪个月份,闰年要单独处理,而且要在循环内处理。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int y, n;
	
	while (scanf("%d%d", &y, &n) != EOF) {
		int mon[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
		int sum = 0;
		for (int i = 0; i < 13; i++) {
			sum = sum + mon[i];
			mon[i] = sum;
		}
		if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
			for (int i = 2; i < 13; i++)
				mon[i]++;
		}

		int t = 0;
		for (int i = 0; i < 13; i++) {
			if (n <= mon[i]) {
				t = i;
				break;
			}
		}
		//if (t < 10)
			printf("%d-%02d-%02d\n", y, t, n - mon[t-1]);
		//else
			//printf("%d-%d-%d\n", y, t, n - mon[t-1]);

	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发