打鱼还是晒网

问题:中国有句俗语:“三天打鱼,两天晒网”。某人从1990年1月1日开始三天打鱼,两天晒网,问这个人以后的某一天中是在打鱼还是晒网。

设计:定义一个结构体用于存放当天的年月日,定义一个函数runyear可以用来判断某年是否为闰年,定义一个函数countday用来判断当天距离1990年1月1日一共多少天,用该天数对5求余,若求余得1,2,3则在打鱼,其余的求余情况则是在晒网。

#include<stdio.h>
struct date
{
int year;
int month;
int day;

};
int runyear(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
return 1;
else
return 0;
}
int countday(struct date currentday)
{
int permonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int totalday=0,year,i;
for(year=1990;year<currentday.year;year++)
{
if(runyear(year))

totalday+=366;

else
totalday+=365;
}
if(runyear(currentday.year))
{
permonth[2]=permonth[2]+1;
}
for(i=1;i<currentday.month;i++)
{
totalday=totalday+permonth[i];
}
totalday=totalday+currentday.day;
return totalday;

}
int main()
{
struct date today;
int totalday;
int result;
scanf("%d%d%d",&today.year,&today.month,&today.day);
totalday=countday(today);
result=totalday%5;
if(result==1||result==2||result==3)
printf("打鱼");
else if(result==0||result==4)
printf("晒网");


return 0;
}

 

posted @ 2023-04-13 19:34  千恒  阅读(39)  评论(0编辑  收藏  举报