C语言借书方案知多少代码介绍
发布时间:2021-11-12 13:59:18 所属栏目:教程 来源:互联网
导读:问题描述 小明有5本新书,要借给A、B、C这3位小朋友,若每人每次只能借1本,则可以有多少种不同的借法? 问题分析 本题属于数学当中常见的排列组合问题,即求从5个数中取3个不同数的排列组合的总数。可以将5本书进行15的编号,A、B、C 3个人每次都可以从5本
问题描述 小明有5本新书,要借给A、B、C这3位小朋友,若每人每次只能借1本,则可以有多少种不同的借法? 问题分析 本题属于数学当中常见的排列组合问题,即求从5个数中取3个不同数的排列组合的总数。可以将5本书进行1〜5的编号,A、B、C 3个人每次都可以从5本书中任选1本,即每人都有5种选择,由于1本书不可能同时借给一个以上的人,因此只要这3个人所选书的编号不同,即为一次有效的借阅方法。 算法设计 对于每个人所选书号,可以采用穷举循环来实现,即从每个人可选书号(1、2、 3、4、5)的范围内进行穷举,从而得到可行的结果。对第1个人的选择,可以用循环将其列出:for(a=1; a<=5; a++),对于第2个人、第3个人可以用同样的方法。由于一本书只能借给一个人,所以第2个人的选择会受到第1个人的限制,最后一个人的选择会受到第2个人的限制,即后面的选择都是在前面选择的前提下进行的,所以可釆用循环的嵌套来解决问题。 下面是完整的代码: #include<stdio.h> int main() { int a, b, c, i=0; /*a,b,c分别用来记录三个人所选新书编号,i用来控制有效借阅次数*/ printf("A,B,C三人所选书号分别为:n"); for(a=1; a<=5; a++) /*用来控制A借阅图书编号*/ for(b=1; b<=5; b++) /*用来控制B借阅图书编号*/ for(c=1; c<=5; c++) /*用来控制C借阅图书编号*/ if(a!=b && a!=c && c!=b) /*此条件用来控制有效借阅组合*/ { printf("A:%2d B:%2d c:%2d ", a, b, c); i++; if(i%4==0) printf("n"); } /*每行最多输出4种借阅方法组合*/ printf("共有%d种有效借阅方法n",i); /*输出有效的借阅方法总数*/ return 0; } 运行代码 运行结果: A,B,C三人所选书号分别为: A: 1 B: 2 c: 3 A: 1 B: 2 c: 4 A: 1 B: 2 c: 5 A: 1 B: 3 c: 2 A: 1 B: 3 c: 4 A: 1 B: 3 c: 5 A: 1 B: 4 c: 2 A: 1 B: 4 c: 3 A: 1 B: 4 c: 5 A: 1 B: 5 c: 2 A: 1 B: 5 c: 3 A: 1 B: 5 c: 4 A: 2 B: 1 c: 3 A: 2 B: 1 c: 4 A: 2 B: 1 c: 5 A: 2 B: 3 c: 1 A: 2 B: 3 c: 4 A: 2 B: 3 c: 5 A: 2 B: 4 c: 1 A: 2 B: 4 c: 3 A: 2 B: 4 c: 5 A: 2 B: 5 c: 1 A: 2 B: 5 c: 3 A: 2 B: 5 c: 4 A: 3 B: 1 c: 2 A: 3 B: 1 c: 4 A: 3 B: 1 c: 5 A: 3 B: 2 c: 1 A: 3 B: 2 c: 4 A: 3 B: 2 c: 5 A: 3 B: 4 c: 1 A: 3 B: 4 c: 2 A: 3 B: 4 c: 5 A: 3 B: 5 c: 1 A: 3 B: 5 c: 2 A: 3 B: 5 c: 4 A: 4 B: 1 c: 2 A: 4 B: 1 c: 3 A: 4 B: 1 c: 5 A: 4 B: 2 c: 1 A: 4 B: 2 c: 3 A: 4 B: 2 c: 5 A: 4 B: 3 c: 1 A: 4 B: 3 c: 2 A: 4 B: 3 c: 5 A: 4 B: 5 c: 1 A: 4 B: 5 c: 2 A: 4 B: 5 c: 3 A: 5 B: 1 c: 2 A: 5 B: 1 c: 3 A: 5 B: 1 c: 4 A: 5 B: 2 c: 1 A: 5 B: 2 c: 3 A: 5 B: 2 c: 4 A: 5 B: 3 c: 1 A: 5 B: 3 c: 2 A: 5 B: 3 c: 4 A: 5 B: 4 c: 1 A: 5 B: 4 c: 2 A: 5 B: 4 c: 3 共有60种有效借阅方法 C语言借书方案知多少代码解析 知识点补充 利用循环解决问题的时候,找到循环的三要素:循环变量的初值、循环的控制条件,以及使循环趋于结束的循环变量值的改变是进行编程的关键。读者可参照第一个例子来找一下本题中所对应的循环三要素。本题的输出结果有一个条件限制,即3个人所选书号各不相同。在输出语句前只要用一个if语句if(a!=b && a!=c && c!=b)判断即可。 (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |