题目:跑步锻炼
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1日周六(含)到 2020年 10 月 1日周四(含)。请问这段时间小蓝总共跑步多少千米
#include
//这段代码的答案一直是8876,可以帮忙找找问题吗?
int main()
{
int i,j,k,num=0,sum=0;
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int weak=6;
for(i=2000;i<=2020;i++)
{
if((i%400==0)||(i%100!=0 && i%4==0)){
month[2]=29;
}
else{
month[2]=28;
}
for(j=1;j<=12;j++)
{
for(k=1;k<=month[j];k++)
{
if(weak==6 && k!=1){
num++;
}
sum++;
weak++;
if(weak==8){
weak=1;
}
}
num++;
}
}
sum -= 91;
num -= 15;
sum +=num;
printf("%d",sum);
return 0;
}
#include<stdio.h>
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int year=2000,week=6,count=0,mth=1,day=1;
while(1)
{
count++;
if(day>a[mth])
{
if(mth==12)
{
mth=1;year++;
}
else if(mth+1==2)
{
if(year%4==0)
a[mth+1]=29;
else
a[mth+1]=28;
mth++;
}
else
mth++;
day=1;
}
if(week==1||day==1)
count++;
if(year==2020&&mth==10)
break;
if(week==7)
{
week=1;
}
else
{
week++;
}
day++;
}
printf("%d",count);
}
该回答引用ChatGPT
参考一下 我这个 :
#include <stdio.h>
int main() {
int days = 0, km = 0;
for (int year = 2000; year <= 2020; year++) {
for (int month = 1; month <= 12; month++) {
int days_in_month = 31;
if (month == 2) {
days_in_month = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 29 : 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days_in_month = 30;
}
for (int day = 1; day <= days_in_month; day++, days++) {
if (day == 1 || (days + 5) % 7 == 0) {
km += 2;
} else {
km += 1;
}
}
}
}
printf("小蓝总共跑了 %d 千米\n", km);
return 0;
}
第 29 行,num++ 应该删掉