题目:中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。

问题分析与算法设计
1)计算从2010年1月1日开始至指定日期共有多少天;
2)由于打鱼和晒网的周期为5天,所以可以由天数与5求余的结果得出最终结果(余数为1,2,3为打鱼,4,0为晒网);
那么求其中的总天数是该程序的关键。我们可以分步求输入年月日对应于2010.1.1之间的天数再求和。Sum=sum1+sum2+sum3;其中年份中总天数需要计算出闰年有几个;伪代码如下:
求年份之间所隔天数:判断该年是否为闰年,若为闰年且月份<2,Sum1=(year-2010)*365+(year-2008)/4-1;否则Sum1=(year-2010)*365+(year-2008)/4。其中(year-2008)是计算出输入年份与2010年最近的闰年数之差,再除4就可得期间的闰年数个数。
求月份之间所隔天数:就是输入月份与1月之间月份的总天数。定义一个数组arr[] = { 31,28,31,30,31,30,31,31,30,31,30,31 },month=i,通过for循环实现对天数的累加。Sum2=sum2+arr[i];
求日之间所隔天数:sum3=day;
Sum=sum1+sum2+sum3;
流程图:

代码如下:

#include<stdio.h>
int main()
{int year, month, day, sum1 = 0, sum2 = 0, sum = 0, sum3 = 0,i;printf("请输入年月日,中间用连字符-隔开\n");scanf("%d-%d-%d", &year, &month, &day);i = month;int arr[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };while (year < 2010){printf("年份输入过小,请重新输入: \n");scanf("%d-%d-%d", &year, &month, &day);}if (month < 1 || month>12){printf("月份错误,请重新输入:\n");scanf("%d-%d-%d", &year, &month, &day);}if (day>arr[i-1]){printf("日期错误,请重新输入:\n");scanf("%d-%d-%d", &year, &month, &day);
}if ((year % 4 == 0 && year % 100 != 0 || year % 400 ==0) && month > 2)//判断输入年份是否为闰年且月份是否>2;
sum1 = (year - 2010) * 365 + ((year - 2008) / 4) + 1;//(year-2008)/4计算出输入年份与2000年之间的闰年数,闰年的话多加一天
else
sum1 = (year - 2010) * 365 + ((year - 2008) / 4);
for (i = 0; i<month - 1; i++){sum2 = sum2 + arr[i];}if (day>1){sum3 = day;}//如果输入的日期是一号,则不需要加1sum = sum1 + sum2 + sum3;printf("sum=%d\n", sum);if (sum % 5 == 0 || sum % 5 == 4){printf("晒网\n");}else {printf("打渔\n");}return 0;
}

调试截图:
加断点调试:

测试结果展示:

``
学习心得:
很久没编了,很多东西在第一开始就没学会,这次在网上查了很多,虽然编程知识还是没学会多少,但毕竟有所收获。从理解别人的代码到修改其中的不足,我觉得我思想上也是有进步的。我畏惧编程,或许从内心抵抗它,但是没办法选了这个专业,还有一年9半的时间,我希望自己可以去学习不同新的知识,无论是编程还是其他方面的知识。(或许这个IT博客不适合写这些,可我还是想要说出自己的想法。)希望自己不要老是害怕,勇敢一些,至少不要挂科。加油!

三天打鱼两天晒网问题相关推荐

  1. 分支-03. 三天打鱼两天晒网(Switch…case)

    中国有句俗语叫"三天打鱼两天晒网".假设某人从某天起,开始"三天打鱼两天晒网",问这个人在以后的第N天中是"打鱼"还是"晒网&qu ...

  2. Java---中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。

    已经实现的功能: 从键盘输入指定的年.月.日: 计算从2010年1月1日至指定日期共有多少天: 由于"打鱼"和"晒网"的周期为5天,所以将计算出的天数用5去除. ...

  3. python天天向上的力量三天打鱼两天晒网_017 示例3-天天向上的力量-Go语言中文社区...

    一."天天向上的力量"问题分析 1.1 天天向上的力量 基本问题:持续的价值 一年365天,每天进步1%,累计进步多少呢? (1.01^{365}) 一年365天,每天退步1%,累 ...

  4. 三天打鱼两天晒网 (15 分)

    中国有句俗语叫"三天打鱼两天晒网".假设某人从某天起,开始"三天打鱼两天晒网",问这个人在以后的第N天中是"打鱼"还是"晒网&qu ...

  5. 三天打鱼两天晒网python程序设计_Python经常会遇到三天的笔试题:钓鱼和两天的晒网:,之,三天打鱼,两天晒网...

    问题概述:中国有句俗语叫"三天打鱼两天晒网"某人从1990年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是&qu ...

  6. C语言程序设计打鱼还是晒网,C语言编程三天打鱼两天晒网

    满意答案 dmmk2822 2018.11.05 采纳率:46%    等级:6 已帮助:160人 中国有句俗语叫 "三天打鱼两天晒网 ".某人从 1990年 1月 1日起开始&q ...

  7. python天天向上的力量三天打鱼两天晒网_天天向上的力量

    我前阵子三天打鱼两天晒网地学了一点Python,也就开个头的样子吧,然后就不想学了,一鼓作气再而衰三而竭了.我学到课程的第三个例子,老师给起的名字叫"天天向上的力量". 其实就是那 ...

  8. 实验3-9 三天打鱼两天晒网 (15 分)

    实验3-9 三天打鱼两天晒网 (15 分) 中国有句俗语叫"三天打鱼两天晒网".假设某人从某天起,开始"三天打鱼两天晒网",问这个人在以后的第N天中是" ...

  9. 三天打鱼两天晒网--捕鱼小游戏

    在B站学了好几天,终于搞通了,能跑了,捕鱼的小游戏~ 下面分步骤跟大家说说呗~~~ /*** Java中的窗体类:JFrame(游戏的支架)用来固定游戏界面* 自定义窗体的固定步骤:* 1.创建一个任 ...

  10. “三天打鱼两天晒网问题

    中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是"晒 ...

最新文章

  1. 就算是戴上口罩,AI也知道你在说什么丨EMNLP 2020最佳论文
  2. 公司间采购的后台配置备忘录
  3. 华为 命令 so easy
  4. 图像算法中常用的数学概念
  5. 解决启动Biee控制台乱码问题
  6. jQuery 图片轮流展示效果
  7. 科发财务凭证登陆出现错误:40002
  8. 【Shell教程】一----什么是Shell
  9. mysql profile使用(转)
  10. 使用IDEA编写一个springMVC架构的HelloWorld
  11. attack lab 做不出来_让人念念不忘的香油,到底是怎么做的,我们自己就是做不出来?...
  12. 单例模式详解(线程安全,饿汉,懒汉模式)
  13. centos du 命令使用
  14. Internet Explorer无法打开站点,已终止操作
  15. 程序员”脑筋急转弯”
  16. win7 c盘空间不足怎么扩大
  17. nginx 使用总结
  18. 有关于Mapreduce的读后感
  19. 用了三年teambition的我,为什么改用飞项了?
  20. 重拾Java基础知识:IO流

热门文章

  1. 独孤九剑之SQL调优
  2. bomb和mysql_Bigger Bomb
  3. C盘清理的五大技巧,瞬间多出30G
  4. 【工具】Alfred2.5.1使用全攻略!神一样的Mac app!(神一样的搜索)(推荐)
  5. 导出anaconda的代码为pdf
  6. MySQL 一起重新认识下count(*) ,count(1),count(id)
  7. 【prcc2017实践】win7工具安装python3.7、you-get、QuickTime、ffmpeg、prcc2017
  8. cmak(kafka Manager) 编译教程
  9. Agora Talk 回顾 | 深入聊聊不一样的 Flutter
  10. 人体大脑是如何产生压力的,脑体的机制变化过程