打鱼还是晒网

发布时间 2023-04-12 16:11:03作者: 安徽铁道兵

 

一人三天打鱼两天晒网,从1990年1月1日开始打鱼,给定日期计算是打鱼还是晒网。

#include <stdio.h>
int main()
{
int year,month,day;
scanf("%d %d %d",&year,&month,&day);//输入年月日
int year1=year-1990;//判断是不是下一年,若为下一年则可直接计算
int sum=0;//计算总天数
int res=0;//用总天数与5求余数,1到3则打鱼,否则晒网
while(year1!=1)
{
for(int i=1990;i<year;i++)
{
if(i%4==0&&i%100!=0||i%400==0)//判断是否为闰年
{
sum+=366;
}
else
{
sum+=365;
}
}
year1--;
}
sum+=365;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//非闰年的各个月份,增加a[0]=0可以是月份与天数相对应
int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<=month;i++)
{
if(year%4==0&&year%100!=0||year%400==0)
{
sum+=b[i];
}
else
{
sum+=a[i];
}
}
sum+=day;
res=sum%5;
if(res<4)
{
printf("打鱼");
}
else
{
printf("晒网");
}
return 0;
}

用1999年1月31日测试可得结果为:

1999 1 31
打鱼
Process returned 0 (0x0) execution time : 8.359 s
Press any key to continue.

与预期结果相一致。