文章
19
粉丝
225
获赞
20
访问
53.3k
一些值得注意的点:%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;
}
登录后发布评论
暂无评论,来抢沙发