这一题就是要干掉输入中的那个'/',直接提取到年份、月份和日期,且看代码实现:
#include<stdio.h>
bool isLeap(int year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400==0) {
return true; // 1
}
else {
return false; //0
}
}
int monthTable[][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 }// 闰年
};
int cal(int year, int month, int day) {
int days = 0;
int t = isLeap(year);
for (int i = 1; i < month; i++) {
days += monthTable[t][i];
}
days += day;
return days;
}
int main()
{
int year;
int month;
int day;
char c;
while (scanf("%d%c%d%c%d", &year, &c, &month, &c, &day) != EOF) {// 这里用一个字符变量来干掉输入中的'/'
int days = cal(year, month, day);
printf("%d\n", days);
}
return 0;
}