文章目录
一、问题描述
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的以后的某一天中是打鱼还是晒网。用C语言或c++实现。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。
二、问题分析与算法设计
1)计算从2010年1月1日至指定日期共多少天。思路为:所隔年份天数加上所隔月份天数,加上日的天数,要分平年和闰年,闰年二月有29天,其他只有28天,闰年的判断用伪代码描述如下:
若能被4除尽 且 不能被100除尽或 能被400除尽 闰年。 否则 平年。
2)打鱼晒网周期为5天,,将总天数用5除,若余数为1,2,3,在打鱼,否则在晒网。
流程图如下:
程序设计实现源代码如下:
#include<stdio.h>
int main()
{
int year,month,day,x,a;
int ye=2010;
int sum=0;
int i[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};//建立平年各月份天数的数组
int j