使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使输入某年某月某日,可判断这一天是这一年的第几天。 程序分析:以3月5日为例,应该先把前两个月的天数加起来,然后再加上5天即本年的第几天(特殊情况:闰年输入

admin2016-10-28  47

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

}
void main()
{
cout<<func(2007,2,1)<<endl;
cout<<func(2007,i0,i0)<<endl;
cout<<func(2008,8,12)<<endl;
return;
}

选项

答案int sum; int leapyear; switch(month)/*先计算某月以前月份的总天数*/ { case1; sum=0; break; case2: sum=31; break; case3: sum=59; break; case4: sum=90; break; case5: sum=120; break; case6: sum=151; break; case7: sum=181; break; case8: sum=212; break; case9: sum=243; break; case10: sum=273; break; case11: sum=304; break; case12: sum=334; break; defalllt: cout<<"data error"<<endl; break; } sum=sum+day; if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leapyear=1; else leapyear=0; if(1eapyear==l&&month>2) sum++; return sum;

解析 (1)为方便起见,先统计正常年份下,每个月的前面有多少天,可以用switch方式查询,然后再加上本月的日子,很快便得到了这一天是属于这一年的第几天。
(2)闰年的判断方法为:if(year%400==0||(year%4==0&&year%100!=0)),if语句为真则为闰年,二月之后的日期后需要加一天。
转载请注明原文地址:https://jikaoti.com/ti/2ME0FFFM
0

最新回复(0)