中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言实现程序解决问题。
步骤:
1.算法分析
本题是要靠求出这个人在从2010年1月1日开始之后的某一天是“打鱼”还是“晒网”的状态。
由于“打鱼”和“晒网”的周期为5天,因此需求出从2010年1月1日开始至指定某天的总天数,用总天数除以5求得余数,后根据余数来确定这个人在这天的状态。若余数为1、2。3,则他是在“打鱼”;否则,是在“晒网”。求总天数的时候应考虑该年是不是闰年,若是闰年的话,二月有29天,该年工共366天;若是平年,二月有28天,则该年有365天。
而判断闰年的条件为年份能被4整除但不能被100整除,或者能被400整除。输入的时候需要检查一下输入的年份是否符合实际,若不符合应清除并重新输入。
使用函数Date,储存year,month,day,并检验输入年份格式是否符合实际。
使用函数Determine,用于计算时间间隔天数。
2.概要设计
3.程序代码
#include <stdio.h>
#include <stdlib.h>
int Date()
{
int allday = 0; //总天数
int year = 0; //输入年份
int month = 0; //输入月份
int da