#include<stdio.h> int main(){ int months[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int year,month,days; while(scanf("%d%d%d",&year,&month,&days)!=EOF) { int num=0; if((year%4==0&&year%100!=0)||(year%400==0)) num=num+1; for(int i=0;i<month-1;i++) { num+=months[i]; } printf("%d\n",days+num); } return 0; }为什么1236 2 15这组数据通不过 预期46 实际输出47?
#include<stdio.h> int IsLeapYear(int year){ return (year%400 == 0 || (year%100 != 0 && year % 4 == 0)); } int main(){ int year, month, day; int months[2][13] = {{0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}, {0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}}; while(scanf("%d%d%d", &year, &month, &day) != EOF) printf("%d\n", months[IsLeapYear(year)][month] + day); }
#include <stdio.h> int main() { int y, m, d, i, r; int dom[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; while (scanf("%d%d%d", &y, &m, &d) != EOF) { r = 0; dom[2] = 28; if(y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) dom[2] = 29; for(i = 1; i < m; ++i) r += dom[i]; r += d; printf("%d\n", r); } return 0; }