打鱼还是晒网
问题:中国有句俗语:“三天打鱼,两天晒网”。某人从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;
}