《C编程技巧:117个问题解决方案示例 》 —3.9 计算给定对象集的排列和组合

举报
华章计算机 发表于 2020/02/12 15:29:52 2020/02/12
【摘要】 本节书摘来自华章计算机《C编程技巧:117个问题解决方案示例 》 一书中第3章,第3.9节,作者是希里什·查万(Shirish Chavan),卢涛 译。

3.9 计算给定对象集的排列和组合

问题

你想要计算给定对象集的排列和组合。

解决方案

编写一个C程序,用以下规格说明计算给定对象集的排列和组合:

程序使用图3-5中所示的公式,并计算从n个对象中一次取r个对象的排列和组合。

a)从总共n个对象一次取r个对象的排列的公式

b)从总共n个对象一次取r个对象的组合的公式

 image.png

图3-5 从总共n个对象一次取r个对象的排列和组合的公式

程序在屏幕上显示计算结果,并询问用户是否要继续。

代码

以下是使用这些规格说明编写的C程序的代码。在文本编辑器中键入以下C程序,并将其保存在文件夹C:\Code中, 文件名为p&c.c:

 image.png

image.png

编译并执行此程序。这个程序的运行结果在这里给出:

 image.png

工作原理

此程序包含两个do-while循环。第一个do-while循环跨越LOC 9~13。此循环接受n(对象总数)的整数值,范围为1≤n≤7。第二个do-while循环跨越LOC 15~19。此循环接受r的整数值(一次取出的对象数目),范围为1≤r≤n。函数combination()在LOC 31~36中定义。函数permutation()在LOC 37~42中定义。函数fact()在LOC 43~52中定义。在LOC 20~21中调用函数combination()和permutation()。LOC 22~23在屏幕上显示计算出的组合和排列的值。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。