文章

11

粉丝

410

获赞

9

访问

108.6k

头像
1446 日期累加。详细思路分析
P1446 北京理工大学机试题
发布于2020年3月15日 23:55
阅读数 9.8k

大体思路;  输入n,搞一个循环,累次输入具体年份,并且输出算好的。     所以关键就在于每次输入后,对输入数据的处理。

数据处理分为两个关键。  一,判断并修改二月的天数,又分为两种情况,1,平年到闰年,2,闰年到平年。  一个函数就搞定。   函数需要在两个地方调用----初始输入的时候,  天数累加刚好超过本年12月时候。           

     二,   天数的处理。   可以直接把天数和  输入的日期天数加和。。 让然后与本月的固定天数(30/31/28/29)比较.  若超过,则循环减去固定天数,并自增月份。    最后就是月数和12比较,改年份        而此时就到了调用函数的一个关键时刻。

代码及注释如下

#include
void month(int y,int f[])    //函数用于判断,修改闰年二月天数
                     //    (为闰年改为29,上一年是闰年,下一年改为28) 
{
	if((y%4==0&&y%100!=0)||y%400==0)  f[1] =29;
	else   f[1] = 28;	
}

int main()                  //程序总体逻辑见图 
{
	int n,y,m,d,sum;
	scanf("%d",&n);
	while(n--){
	int f[12]={31,28,31,30,31,30,31,31,30,31,30,31};
		scanf("%d%d%d%d",&y,&m,&d,&sum);
		month(y,f);
		sum+=d;
	//	printf("%04d-%02d-%02d\n", y, m, d);
		while(sum-f[m-...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发