原标题: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筐鱼代码及解析相关推荐

  1. 平分七筐鱼c语言y,C语言平分7筐鱼

    问题描述 甲.乙.丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半 ...

  2. 平分7筐鱼---c语言

    问题描述: 甲,乙,丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个 ...

  3. 【算法入门】平分七筐鱼

    //题目: 甲.乙.丙三位渔夫出海打渔,他们随船带了21只箩筐,当晚返航时,他们发现 有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的.由于他们没有秤, 只好通过目测认为7个满筐鱼的重量是相等的 ...

  4. 趣味编程之平分七筐鱼

    甲.乙.丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的.由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重 ...

  5. 2015年第七届蓝桥杯省赛C语言B组

    2015年第七届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题: 题目:奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就 ...

  6. 编写一个C语言程序,输出如下图形(鱼) (5 分)

    编写一个C语言程序,输出如下图形(鱼) 输入格式: 无 输出格式: 答案: #include <stdio.h> int main() {     printf("       ...

  7. Nwafu-OJ-1428 Problem Y C语言实习题五——3.数据倒置

    问题 Y: C语言实习题五--3.数据倒置 时间限制: 1 Sec  内存限制: 128 MB 题目描述 用指针实现:将具有10个元素的一维数组中的数据倒置. 输入 10个元素. 输出 倒置数据. 样 ...

  8. R语言Y轴坐标的数字如何水平放置?

    R语言Y轴坐标的数字如何水平放置? 目录 R语言Y轴坐标的数字如何水平放置? R语言是解决什么问题的? R语言Y轴坐标的数字如何水平放置? R语言是解决什么问题的? R 是一个有着统计分析功能及强大作 ...

  9. C语言入门——C语言概述

    C语言入门--C语言概述 一. 简单的C程序示例 二. 示例解释 (一). 第一遍:快速概要 (二). 第二遍:程序细节 1. #include 指令和头文件 2. main() 函数 3. 注释 4 ...

最新文章

  1. java中JUnit单元测试的使用方法
  2. BurpSuite实例教程讲解
  3. sudo mount -o loop pm.img /mnt/floppy/mount 错误解决办法--mount 您必须指定文件系统的类型
  4. android opengl es 纹理 不同设备 白色,android – OpenGL ES 2.0纹理没有在某些设备上显示...
  5. hibernate 无法保存timestamp_为什么很多人不愿意用hibernate了?
  6. Office资源汇 | Office 365 微助理功能介绍 4
  7. 【渝粤教育】电大中专新媒体营销实务 (13)作业 题库
  8. linux堡垒机开源软件,Jumpserver开源堡垒机
  9. 解决:Google代码achartengine曲线代码报错问题(转)
  10. java 布局管理器_java布局管理器-borderlayout
  11. diy 扫地机器人 滚刷_扫地机器人无法完成的使命,莱克吉米W7智能洗地机帮你完成...
  12. Linux就该这么学-第三课
  13. android下图片压缩
  14. sublime test3 安装及配置
  15. WRF4.2安装过程全记录
  16. 浏览器点击复制内容并打开微信
  17. Mysql的索引为什么使用B+树而不使用跳表?
  18. 工业以太网交换机和普通交换机的区别 热设计为例
  19. 蓝桥杯的c语言编译器,第九届蓝桥杯大赛个人赛省赛(软件类)C/C++ 大学B组比赛心得(还在更新)...
  20. java 多线程wait()方法的基本使用——63

热门文章

  1. 自然语言处理(基于预训练模型)01FMM分词算法
  2. 电脑双网卡共享给其他电脑上网的方法
  3. FBI录取测试题,据说全球都答对的只有4个人
  4. TOJ 3498.Differences
  5. 计算机组成原理算术逻辑实验,《计算机组成原理》算术逻辑运算实验报告.doc...
  6. 俞敏洪在新东方年会发表演讲:2019,再次出发
  7. [海外商情]2020年YOUTOBE网站运营成效
  8. 让“作用域和闭包”说人话
  9. ID 220970.1-- RAC: Frequently Asked Questions
  10. 3G无线上网分析、优惠以及推荐选择