该题考查到闰年的计算
#include<stdio.h>
int main()
{
int i; //作为2000年到2020年的计数
int day; //作为天数,从1到这个月的最后一天,28,29,30或者31
int mon = 6; //作为星期,从星期一到星期六
int month; //作为月份,从1月到12月
int ans=0; //作为跑步锻炼的千米数从1km开始,最后得出答案
int monthes[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //指代月份的天数
for (i = 2000;i <= 2020;i++) //从2000年开始跑步到2020年结束,开始计算
{
if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) //判断该年是闰年还是平年
{
monthes[2] = 29; //闰年2月29天
}
else
{
monthes[2] = 28; //平年2月28天
}
for (month = 1;month <= 12;month++) //从1月开始计算
{
for (day = 1;day <= monthes[month];day++) //从1日开始计算
{
ans++;
if (mon == 8) //如果mon变成8就回到星期一
{
mon = 1;
}
if (day == 1 || mon == 1) //如果是这个月的第一天或者周一就再跑1千米
{
ans++;
}
mon++; //星期++
if (i == 2020 && month == 10 && day == 1) //如果到了2020年10月1日就截止
{
printf("%d", ans); //输出所跑的总km数
}
}
}
}
return 0;
}
答案8879