`
qiufeihu
  • 浏览: 34793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言算法之打渔晒网问题

阅读更多

如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。

代码如下:

 

#include <stdio.h>
int leap(int a)  /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
	if((a%4 == 0 && a%100 != 0 )|| a%400 == 0)  /*闰年判断条件*/
		return 1;                             /*是闰年返回1*/
	else
		return 0;                             /*不是闰年返回0*/
}
int number(int year,int m,int d)  /*自定义函数number()计算输入日期距2011年1月1日共有多少天*/
{
	int sum = 0,i,j,k,a[12]=
	{
		31,28,31,30,31,30,31,31,30,31,30,31
	};                            /*数组a存放平年每月天数*/
	int b[12] = 
	{
		31,29,31,30,31,30,31,31,30,31,30,31
	};                            /*数组b存放闰年每月的天数*/
	if(leap(year) == 1)            /*判断是否为闰年*/
		for(i = 0;i < m - 1;i++)
			sum += b[i];          /*是闰年,累加数组b前m-1个月份的天数*/
	else
		for(i = 0;i < m - 1;i++)
			sum += a[i];          /*不是闰年,累加数组a前m-1个月份的天数*/
	for(j = 2011;j<year;j++)
	if(leap(j) == 1)
		sum += 366;               /*2011年到输入的年份就是闰年的加366*/
	else
		sum += 365;               /*2011年到输入的年份不是闰年加365*/
	    sum += d;                 /*将前面累加的结果加上日期,求出总天数*/
	return sum;                   /*返回计算的天数*/
}
int main()
{
	int year,month,day,n;
	printf("请输入年月日\n");
	scanf("%d%d%d",&year,&month,&day);  /*输入年月日*/
	n = number(year,month,day);         /*调用函数number()*/
	if((n%5) < 4 && (n%5) > 0)          /*当余数是1或2或3时说明在打渔,否则在晒网*/
		printf("%d-%d-%d 打渔\n",year,month,day);   
	else
		printf("%d-%d-%d 筛网\n",year,month,day);
}

运行结果:

请输入年月日

2015 5 5

2015-5-5 打渔

分享到:
评论

相关推荐

    打鱼晒网程序

    6. 算法设计:打鱼晒网问题可能涉及到简单的贪婪算法,即每一步都选择当前看起来最优的选择(例如,如果天气晴朗就去打鱼,否则晒网)。然而,也可能需要更复杂的策略,如动态规划或模拟退火等,以应对更为复杂的...

    C语言算法练习之打鱼还是晒网.docx

    【C语言算法练习之打鱼还是晒网】的题目是一个基于日期和周期的逻辑问题,要求根据“三天打鱼两天晒网”的规律判断在给定日期是打鱼还是晒网。这个问题涉及到C语言的日期计算、循环、条件判断以及算法设计。 首先,...

    C语言-打鱼晒网问题,带代码

    【C语言-打鱼晒网问题,带代码】是一个经典的编程问题,主要涉及算法设计和逻辑推理。问题的核心是计算渔夫在有限时间内捕获所有鱼所需的最少天数。问题的背景是渔夫每天可以捕捞一次,但之后需要休息一段时间(晒网...

    C语言趣味算法

    8. 打鱼还是晒网:一个逻辑判断问题,通过编程算法来判断某人的行为模式。 9. 抓交通肇事犯:通过已知信息模拟和预测犯罪行为,是一种基于数据的预测算法。 10. 怎样存钱利最大:涉及到资金的时间价值计算,能够...

    一百个经典算法,C语言编写

    9. 打鱼还是晒网:可能是一个决策问题,涉及时间管理和收益最大化。 10. 抓交通肇事犯:可能涉及到图论和最短路径算法,如Dijkstra或Floyd-Warshall。 11. 该存多少钱:理财问题,可能涉及到复利计算和最优投资...

    C语言算法合集含最大公约数、最小公倍数、猴子吃桃子、百钱百鸡问题、渔夫打鱼问题、二分查找法、分块查找法、求水仙花数、统计单词个数

    在本C语言算法合集中,我们涵盖了多个经典算法和数据结构的应用,这些是计算机科学的基础,对于学习和提升编程技能至关重要。以下将详细介绍其中涉及的知识点: 1. **最大公约数(Greatest Common Divisor, GCD)与...

    三天打鱼两天晒网C语言详细代码

    某人从 1990年 1月 1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。 根据题意可以将解题过程分为三步: 1)计算从 1990年 1月 1日开始至指定日期共有多少天; 2)由于“打鱼”和...

    杭电复试C语言编程实例及答案解析

    4. C语言渔夫打鱼晒网问题 知识点:日期计算、算法、输出格式 该实例要求编写程序实现当输入2011年1月1日以后的任意一天,输出该渔夫是在打渔还是在晒网。 5. C语言希尔排序算法 知识点:排序算法、数组、交换...

    三天打渔两天晒网c语言

    该程序的目标就是通过C语言来模拟这一情景:从2010年1月1日开始,假设一个人按照“三天打鱼两天晒网”的模式活动,用户输入一个日期,程序会判断这一天这个人是在“打鱼”还是“晒网”。 ### 功能需求分析 #### ...

    C语言常用算法

    077 打鱼还是晒网 078 怎样存钱以获取最大利息 079 阿姆斯特朗数 080 亲密数 081 自守数 082 具有abcd=(ab+cd)2性质的数 083 验证歌德巴赫猜想 084 素数幻方 085 百钱百鸡问题 086 爱因斯坦的数学题 087 ...

    C语言趣味程序百例精解.docx

    * 程序思路:使用C语言的数学库函数,计算打鱼还是晒网的概率,学习算法的应用。 2.2 抓交通肇事犯 * 知识点:数组、字符串处理 * 程序思路:使用C语言的数组和字符串处理函数,实现抓交通肇事犯的统计。 2.3 该...

    (C语言)三天打鱼两天晒网问题

    2. **条件判断**:`if`语句用于判断当前天数是否属于"打鱼"或"晒网"的状态。可以设置一个计数器来记录符合模式的周期数。 3. **变量和数据类型**:需要定义整型变量存储天数、周期数以及当前状态(工作或休息)。...

    C语言实例解析精粹.pdf

    包括绘制余弦曲线和直线、验证歌德巴赫猜想、计算高次方数的尾数、打鱼还是撒网、百钱百鸡问题等。这些实例不仅增加了编程的趣味性,同时也展示了C语言强大的计算能力。 书中还包含了一些C语言特有的知识点,如通过...

    三天打鱼两天晒网(C语言代码实现)

    文件实现了某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。它实现了一下要求: 基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。 提高要求...

    c语言练习题

    “三天打鱼两天晒网”问题是一个数学题目,要求计算小强在以后的某一天中是在“打鱼”,还是在“晒网”。解决这个问题需要使用数学知识,例如周期函数。 9. 桌子上的人数问题 知识点:算法、数据结构、组合数学 ...

    C语言趣味题

    游戏和谜题的设计,如打鱼晒网、迷语博士的难题和黑白子交换等,为学生提供了丰富的娱乐体验。这些题目不仅增加了学习的趣味性,同时也涉及到了决策和搜索算法。解决这些问题能够让学生在轻松的环境中锻炼自己的思维...

    三天打鱼两天晒网(Linux C语言实现).pdf

    首先,问题描述指出,渔民的活动周期是连续的五天,其中三天用于打鱼,两天用于晒网。我们需要计算在给定的天数内,按照这个规律,渔民能打鱼的天数。问题分析中提到,可以通过计算完整的五天周期数量和剩余的天数来...

    C语言竞赛练习题(答案).pdf

    9. **优化计算**:"打鱼还是晒网"、"怎样存钱利最大"等题目需要考虑实际生活中的决策问题,并且可能需要计算复利、最优化算法等。 10. **递归与循环**:"九位累进可除数"可能需要使用递归或循环结构来寻找满足特定...

    c语言经典案例

    实例017 打渔晒网问题 20 实例018 判断三角形的类型 22 实例019 直接插入排序 23 实例020 希尔排序 25 实例021 冒泡排序 26 实例022 快速排序 27 实例023 选择排序 28 实例024 归并排序 29 实例025 二分查找 31 实例...

    c语言程序设计经典习题集

    可以利用日期计算的方法,先计算出从起始日期到给定日期的天数差,然后根据天数差判断是在打鱼还是晒网。 #### 6. 该存多少钱 - **知识点**: 循环结构、基本算术运算。 - **解析**: 需要根据一定的目标金额和存款...

Global site tag (gtag.js) - Google Analytics