Run ID:106591

提交时间:2025-01-16 13:50:15

include<stdio.h> int main() { int count;//用于存储数据有几个出生日期 int number[200];//用于存储每个出生日期到18岁的天数 scanf("%d", &count); for (int j = 0; j < count; j++) { int year = 0, month = 0, day = 0, allDay = 0; scanf("%d-%d-%d", &year, &month, &day); //按照格式接收数据 //如果是闰年的2月29日出生,那么必定没有18岁生日,天数设置为-1 if ((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) && (month == 2) && (day == 29)) { number[j] = -1; continue;//下面的代码就不执行了,进行下一次循环 } //分2月28前后,2月28日之前不管下一年是不是闰年,到下一年同一天的天数只跟这一年有关 //如果在2月28日之后,还要判断下一年是不是闰年,从而改变加的天数 if ((month == 2 && day <= 28) || month == 1) { //2月28日之前 for (int i = year; i < year + 18; i++) { if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)) //闰年天数加 1 allDay += 366; else allDay += 365; } } if (month > 2) { //2月之后 for (int i = year + 1; i <= year + 18; i++) { if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)) allDay += 366; else allDay += 365; } } number[j] = allDay; //将总天数赋值给number存放 } for (int i = 0; i < count; i++) //一起输出 printf("%d\n", number[i]); return 0; }