题目有问题,没有考虑世纪闰年情况,考虑了了反而通不过最后一个用列。
#include <stdio.h> int day_of_months[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int main(void) { int year, month, day; int days = 0; while(scanf("%d %d %d",&year, &month, &day ) != EOF) { int i = 0; for(i=0; i<(month-1); i++) { days += day_of_months[i]; } days += day; if( ( (year%4 == 0) && (year%100 != 0) ) )//|| (year%400 == 0) ) { days += 1; } printf("%d\n", days); } return 0; }