平分七筐鱼c语言y,C语言平分7筐鱼代码及解析
原标题:C语言平分7筐鱼代码及解析
问题描述
甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼平分为3份?
问题分析
根据题意可以知道:每个人应分得七个箩筐,其中有3.5筐鱼。解决该问题可以采用一个3*3的数组,数组名为a来表示3个人分到的东西。其中每个人对应数组a的一行,数组的第0列放分到的鱼的整筐数,数组的第1列放分到的半筐数,数组的第2列放分到的空筐数。
又由题目可以推出:
(1) 数组的每行或每列的元素之和都为7。
(2) 对数组的行来说,满筐数加半筐数=3.5。
(3) 每个人所得的满筐数不能超过3筐。
(4) 每个人都必须至少有1个半筐,且半筐数一定为奇数。
对于找到的某种分鱼方案,3个人谁拿哪一份都是相同的,为了避免出现重复的分配方案,可以规定:第2个人的满筐数等于第1个人的满筐数;第2个人的半筐数大于等于第1个人的半筐数。
下面是完整的代码:
#include
int a[3][3], count;
int main()
{
int i, j, k, m, n, flag;
printf("It exists possible distribtion plans:n");
for(i=0; i<=3; i++) /*试探第一个人满筐a[0][0]的值,满筐数不能>3*/
{
a[0][0]=i;
for(j=i; j<=7-i&&j<=3; j++) /*试探第二个人满筐a[1][0]的值,满筐数不能>3*/
{
a[1][0]=j;
if((a[2][0]=7-j-a[0][0])>3)
continue; /*第三个人满筐数不能>3*/
if(a[2][0]
break; /*要求后一个人分的满筐数大于等于前一个人,以排除重复情况*/
for(k=1; k<=5; k+=2) /*试探半筐a[0][1]的值,半筐数为奇数*/
{
a[0][1]=k;
for(m=1; m<7-k; m+=2) /*试探半筐a[1][1]的值,半筐数为奇数*/
{
a[1][1]=m;
a[2][1]=7-k-m;
/*判断每个人分到的鱼是 3.5筐,flag为满足题意的标记变量*/
for(flag=1,n=0; flag&&n<3; n++)
if(a[n][0]+a[n][1]<7&&a[n][0]*2+a[n][1] == 7)
a[n][2]=7-a[n][0]-a[n][1]; /*计算应得到的空筐数量*/
else
flag=0; /*不符合题意则置标记为0*/
if(flag)
{
++count;
printf("No.%d Full basket Semi-basket Emptyn", count);
for(n=0; n<3; n++)
printf(" fisher %c: %d %d %dn",'A'+n, a[n][0], a[n][1], a[n][2]);
}
}
}
}
}
return 0;
}
运行结果:
It exists possible distribtion plans:
No.1 Full basket Semi-basket Empty
fisher A: 1 5 1
fisher B: 3 1 3
fisher C: 3 1 3
No.2 Full basket Semi-basket Empty
fisher A: 2 3 2
fisher B: 2 3 2
fisher C: 3 1 3
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-11/155138.htm返回搜狐,查看更多
责任编辑:
平分七筐鱼c语言y,C语言平分7筐鱼代码及解析相关推荐
- 平分七筐鱼c语言y,C语言平分7筐鱼
问题描述 甲.乙.丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半 ...
- 平分7筐鱼---c语言
问题描述: 甲,乙,丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个 ...
- 【算法入门】平分七筐鱼
//题目: 甲.乙.丙三位渔夫出海打渔,他们随船带了21只箩筐,当晚返航时,他们发现 有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的.由于他们没有秤, 只好通过目测认为7个满筐鱼的重量是相等的 ...
- 趣味编程之平分七筐鱼
甲.乙.丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的.由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重 ...
- 2015年第七届蓝桥杯省赛C语言B组
2015年第七届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题: 题目:奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就 ...
- 编写一个C语言程序,输出如下图形(鱼) (5 分)
编写一个C语言程序,输出如下图形(鱼) 输入格式: 无 输出格式: 答案: #include <stdio.h> int main() { printf(" ...
- Nwafu-OJ-1428 Problem Y C语言实习题五——3.数据倒置
问题 Y: C语言实习题五--3.数据倒置 时间限制: 1 Sec 内存限制: 128 MB 题目描述 用指针实现:将具有10个元素的一维数组中的数据倒置. 输入 10个元素. 输出 倒置数据. 样 ...
- R语言Y轴坐标的数字如何水平放置?
R语言Y轴坐标的数字如何水平放置? 目录 R语言Y轴坐标的数字如何水平放置? R语言是解决什么问题的? R语言Y轴坐标的数字如何水平放置? R语言是解决什么问题的? R 是一个有着统计分析功能及强大作 ...
- C语言入门——C语言概述
C语言入门--C语言概述 一. 简单的C程序示例 二. 示例解释 (一). 第一遍:快速概要 (二). 第二遍:程序细节 1. #include 指令和头文件 2. main() 函数 3. 注释 4 ...
最新文章
- java中JUnit单元测试的使用方法
- BurpSuite实例教程讲解
- sudo mount -o loop pm.img /mnt/floppy/mount 错误解决办法--mount 您必须指定文件系统的类型
- android opengl es 纹理 不同设备 白色,android – OpenGL ES 2.0纹理没有在某些设备上显示...
- hibernate 无法保存timestamp_为什么很多人不愿意用hibernate了?
- Office资源汇 | Office 365 微助理功能介绍 4
- 【渝粤教育】电大中专新媒体营销实务 (13)作业 题库
- linux堡垒机开源软件,Jumpserver开源堡垒机
- 解决:Google代码achartengine曲线代码报错问题(转)
- java 布局管理器_java布局管理器-borderlayout
- diy 扫地机器人 滚刷_扫地机器人无法完成的使命,莱克吉米W7智能洗地机帮你完成...
- Linux就该这么学-第三课
- android下图片压缩
- sublime test3 安装及配置
- WRF4.2安装过程全记录
- 浏览器点击复制内容并打开微信
- Mysql的索引为什么使用B+树而不使用跳表?
- 工业以太网交换机和普通交换机的区别 热设计为例
- 蓝桥杯的c语言编译器,第九届蓝桥杯大赛个人赛省赛(软件类)C/C++ 大学B组比赛心得(还在更新)...
- java 多线程wait()方法的基本使用——63
热门文章
- 自然语言处理(基于预训练模型)01FMM分词算法
- 电脑双网卡共享给其他电脑上网的方法
- FBI录取测试题,据说全球都答对的只有4个人
- TOJ 3498.Differences
- 计算机组成原理算术逻辑实验,《计算机组成原理》算术逻辑运算实验报告.doc...
- 俞敏洪在新东方年会发表演讲:2019,再次出发
- [海外商情]2020年YOUTOBE网站运营成效
- 让“作用域和闭包”说人话
- ID 220970.1-- RAC: Frequently Asked Questions
- 3G无线上网分析、优惠以及推荐选择