借书方案
问题描述:
小明有5本新书,要借给A、B、C这3位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?
设计思路:
采用穷举循环来实现,即从每个人可选书号(1、2、3、4、5)的范围内进行穷举,从而得到可行的结果。对第1个人的选择,我们可以用循环将其列出: for(a=1;a<=5;a++),同理对于第2个人、第3个人可以用同样的方法。由于一本书只能借给一个人,所以第2个人的选择会受到第1个人的限制,所以可采用循环的嵌套来解决问题。
利用循环解决问题的时候,找到循环的三要素:循环变量的初值、循环的控制条件,以及使循环趋于结束的循环变量值的改变是进行编程的关键。3个人所选书号各不相同。在输出语句前用一个if语句if(a!=b&&a!=c&&c!=b)判断。
源代码如下
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c;
int count = 0;
printf("共有以下借法:\n");
for(a = 1;a <= 5;a++) //a,b,c,分别从一号书借到五号书
{
for(b = 1;b <= 5;b++)
{
for(c = 1;c <= 5;c++)
{
if(0 != (a - b) * (b - c) * (c - a))
{
count++;
printf("%d: %d %d %d\t",count,a,b,c);
if(0 == count % 3)
{
printf("\n");
}
}
}
}
}
return 0;
}