【正确答案】正确答案:int sum; int leapyear; switch(month)/*先计算某月以前月份的总天数*/ { case 1: sum=0; break; case 2: sum=31; break; case 3: sum=59; break; sase 4: sum=90; break; case 5: sum=120; break; sase 6: sum=151; break; case 7: sum=181; break; case 8: sum=212; break; case 9: sum=243; break; case 10: sum=273; break; case 11: sum=304; break; case 12: sum=334; break; default: cout<<"data error"<<end1; break; } sum=sum+day; if(year%400==0||(year%4==0&& year%100!=0))/*判断是不是闰年*/ leapyear=1; else leapyear=0; if(leapyear==1&&month>2) sum++; return sum;
【答案解析】解析:(1)为方便起见,先统计正常年份下,每个月的前面有多少天,可以用switch方式查询,然后再加上本月的日子,很快便得到了这一天是属于这一年的第几天。 (2)闰年的判断方法为:if(year%400==0‖(year%4=0&&year%100!=0)),if语句为真则为闰年,二月之后的日期后需要加一天。