现在的位置: 首页 > 操作系统 > 正文

C语言三色球问题代码解析

2020年02月06日 操作系统 ⁄ 共 560字 ⁄ 字号 评论关闭

问题描述

一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?

问题分析

根据问题描述可设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个。已知12个球中有3个红球,3个白球,6个黑球,因此,m的取值范围为[0, 3],n的取值范围因此为[0, 3],黑球的个数小于等于6,即 8 - m - n ≤ 6。

算法设计

循环结构检测 m、n 范围内的所有可能取值,再代入 8-m-n 中进行验证,能够满足条件 8 - m - n ≤ 6 的那些 m、n 和 8-m-n 的组合即为问题的解。

程序流程图:

下面是完整的代码:

#include<stdio.h>int main(){ int m, n, number=0; printf(" 红球 白球 黑球\n"); printf("......................\n"); for( m=0; m<=3; m++ ) for( n=0; n<=3; n++ ) if(8-m-n<=6) printf(" %2d: %d %d %d\n", ++number, m, n, 8-m-n); return 0;}

运行结果:

红球 白球 黑球......................1: 0 2 62: 0 3 53: 1 1 64: 1 2 55: 1 3 46: 2 0 67: 2 1 58: 2 2 49: 2 3 310: 3 0 511: 3 1 412: 3 2 313: 3 3 2

抱歉!评论已关闭.