题目描述
输入年月日,计算该填是本年的第几天。例如1990 年9 月20 日是1990 年的第263 天,2000 年5 月1 日是2000 年第122 天。
输入描述:
输入第一行为样例数m,接下来m行每行3个整数分别表示年月日。
输出描述:
输出m行分别表示题目所求。
示例1
输入
复制
2 1990 9 20 2000 5 1
输出
复制
263 122
备注:
提示:闰年:能被400 正除,或能被4 整除但不能被100整除。每年1、3、5、7、8、10 、12为大月
#include<stdio.h>
#include<stdbool.h>
bool isLeapYear(int year) {
return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}
int arr[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
int main() {
int m, year, month, day, sum;
scanf("%d", &m);
for (int i = 0; i < m; i++) {
sum = 0;
scanf("%d%d%d", &year, &month, &day);
int id = isLeapYear(year);
for (int j = 0; j < month - 1; j++) {
sum += arr[id][j];
}
sum += day;
printf("%d\n", sum);
}
return 0;
}