打鱼晒网问题
问题:
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
程序流程图:
源代码:
#include<stdio.h>
void main(){
int year,month,day,y,m,days=0;
int num[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年 月 日(空格隔开):\n");
scanf("%d%d%d",&year,&month,&day);
while(year<2010||month>12||day>31)
{
printf("日期输入有误,请重新输入:\n");
scanf("%d%d%d",&year,&month,&day);
}
if(year%400==0||(year%4==0 && year%100!=0)) //若判断是闰年,二月加一天
num[2]+=1;
for(y=2010;y<year;y++) //计算从2010年1月1日到输入的日期总共多少天
{
if(y%400==0||(y%4==0 && y%100!=0))
days+=366;
else
days+=365;
}
for(m=1;m<month;m++)
{
days+=num[m];
}
days+=day;
printf("\n从2010年1月1日起到%d年%d月%d日共经过了%d天\n\n",year,month,day,days);
if(days%5==3||days%5==2||days%5==1) //用计算出的总天数除以5,求模
printf("%d年%d月%d日他在打鱼\n\n",year,month,day);
else
printf("%d年%d月%d日他在晒网\n\n",year,month,day);
}