三天打鱼两天晒网

博客介绍了如何用C或C++编程实现“三天打鱼两天晒网”的逻辑。通过输入日期,程序判断从2010年1月1日起该日期是打渔还是晒网。涉及闰年判断、日期合法性检查及程序调试等步骤。作者分享了调试过程和心得体会,强调了良好的程序设计和规范的重要性。
摘要由CSDN通过智能技术生成

题目要求

中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言实现程序解决问题。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。

步骤

算法设计

(1)输入一个日期
(2)判断日期是否合法(如平年的2月29日,月份大于12,日期大于31,年份小于2010都为不合法日期)。
(3)判断是否为闰年。
(4)计算从2010年1月1日起到输入年份的1月1日共有多少天。从2010年开始,进入for循环,计算其中每一年是否为闰年,若为闰年在总天数上加366,若非闰年,在总天数上加365,直至跳出循环。
(5)计算从输入年份的1月1日起,至输入日期共有多少天。首先区分大月和小月,以及平年二月有28天,闰年二月有29天,从1月开始进入循环,使总日期累加直至跳出循环。最后再加上日期数,记为总天数。
(6)判断该天打渔还是晒网。将总天数对5取余,若余数为0或4,得到该天晒网,若得到1,2,3则该天打渔。

概要设计

程序流程图如图2-2-1所示。
在这里插入图片描述

图2-2-1

测试

(1)输入4000年2月29日时,输出这天在打渔!

(2)输入2021年2月29日,因为2021年为平年,所以输出此年2月没有29天。

(3)输入2008年3月4日,因为从2010年1月1日起,所以输出您输入的日期有误。

调试

输入日期为2013年3月3日,如图2-4-1所示。
图2-4-1

图2-4-1

未进入循环sumyear为0,如图2-4-2所示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值