这是题目
然后是我的代码
#include <stdio.h>
int main()
{
int year,month,day,i,m,w,l,k;//l判断闰年与否,闰年为1,平年为2
//k为加上某年到2000年总天数
//w为总天数对5取余的余数
//i为输入的年份
//m为月份
int n=0,sum=0;//n为输入年的天数
int a[12]={31,0,31,30,31,30,31,31,30,31,30,31};
scanf("%d/%d/%d",&year,&month,&day);
for(i=year;i>=2000;i--)
{
if((i%4==0&&i&&100!=0)||year%400==0)
l=1;
else
l=2;
if(l==1)
{
a[1]=29;
if(i==year)
{
for(m=1;m<month;m++)
{
if((i!=2000)&&(m!=1))
n+=a[m-1];
}
n+=day;
sum+=n;
}
if(i!=year)
{
sum+=366;
}
}
else if(l==2)
{
a[1]=28;
if(i==year)
{
for(m=1;m<month;m++)
{
n+=a[m-1];
}
n+=day;
sum+=n;
}
if(i!=year)
{
sum+=365;
}
}
}
w=sum%5;
if(w>=1&&w<=3)
printf("fishing");
else if(w==4||w==0)
printf("sleeping");
return 0;
}
运行结果是这
结果应该是fishing的,不知道哪里算法错了
可以在我的基础上改一下吗,谢谢各位