[每日例题]蓝桥杯 C语言 跑步锻炼

发布时间 2023-05-05 15:40:03作者: 山远尽成云

跑步锻炼

题目

 思路分析

1.首先,我们明确一件事,就是从2000年1月1日一直到2020年10月1日,他至少每天跑1公里,我们可以套用三层for循环,计算他每天跑一公里跑了多少。

2.其次,他只有在周一或者月初的时候会多跑一公里,那么,我们便使用if进行判断当天是否是周一或者月初

代码

#include<stdio.h>
int main()
{
	int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
	int year,month,day;
	int days=6;//2000年1月1日是星期六
	int sum=0;//公里数
	for(year=2000;year<=2020;year++)//年份 
	{
		if((year%4==0&&year%100!=0)||(year%400==0))//判断是否为闰年 
		{
			months[2]=29;//闰年 
		}
		else
		{
			months[2]=28;//平年 
		}
		for(month=1;month<=12;month++)//月份 
		{
			for(day=1;day<=months[month];day++)//天数 
			{
				sum++;//每天跑1千米
				if(days==8)
				{
					days=1;//一周的轮回 
				}
				if(days==1||day==1)	//月初与星期一时多跑一公里
				{
					sum++; 
				}
				days++;//进入第二天
				if(year==2020&&month==10&&day==1)//到2020年10月1日停止循环
				{
					printf("%d",sum); 
				} 
			}
		} 
	}
	return 0;
}

运行结果