自己写的有点问题,总是会算错,就纳闷了,不太会调试。。。 这个是参考别人的修改过的。。 要学学GDB了,不能老是依赖IDE。。。 #include <stdio.h> #define lev(n) (n % 4 == 0 && (n % 100 != 0 || n % 400 == 0)) int main(void) { int y, m, d, i, s; int month[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; while (scanf("%d/%d/%d", &y, &m, &d) != EOF) { for (s = 0, i = 1 ; i < m ; i++) s += month[lev(y)][i]; s += d; printf("%d/n", s); } return 0; }