问答题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使输入某年某月某日,可判断这一天是这一年的第几天。 程序分析:以3月5日为例,应该先把前两个月的天数加起来,然后再加上5天即本年的第几天(特殊情况:闰年输入月份大于3时需考虑多加一天)。 注意:只能补充函数func(int year,int month.int day),请勿改动其他部分的内容。 #include int func(int year,int month,int day) { } void main() { cout<
【正确答案】正确答案: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语句为真则为闰年,二月之后的日期后需要加一天。