题目代码
编译器反馈部分结果错误(15分得14分),没想通哪里错了。查了一下将各月天数存入数组然后计数循环比较方便。
#include <stdio.h>
int main(){
int year=-1, month=-1, day=-1;
int days=-1;
scanf("%4d/%2d/%2d", &year, &month, &day);
if(month==1)
days = day;
else if(month==2)
days = 31+day;
else if(month==3)
days = 31+28+day;
else if(month==4)
days = 31+28+31+day;
else if(month==5)
days = 31+28+31+30+day;
else if(month==6)
days = 31+28+31+30+31+day;
else if(month==7)
days = 31+28+31+30+31+30+day;
else if(month==8)
days = 31+28+31+30+31+30+31+day;
else if(month==9)
days = 31+28+31+30+31+30+31+31+day;
else if(month==10)
days = 31+28+31+30+31+30+31+31+30+day;
else if(month==11)
days = 31+28+31+30+31+30+31+31+30+31+day;
else if(month==12)
days = 31+28+31+30+31+30+31+31+30+31+30+day;
if(year%400==0|| ((year%4==0)&&(year%100!=0)) )
days++;
/* 再次思考此题“部分正确”的结果,发现此处有逻辑错误,月份大于2时才涉及闰月的days++操作*/
printf("%d\n", days);
// printf("%d\n", 03==3);
return 0;
}