include <stdio.h>
main()
{
int a, b, c = 0,i = 0;
printf("A,B,C三人所选的书号分别为:\n");//标记书号来进行区别
for (a = 1; a <= 5; a++)//三重限制,使用三次循环来进行彼此限制,一人每轮只拿一本
for (b = 1; b <= 5; b++)
for (c = 1; c <= 5&&a!=b; c++)//此处提前进行前两个人所选书号是否一样筛选,减小循环语句的工作可提高有效性
//for (c = 1; c <= 5; c++)
if ( a != c && b != c)
//每个人借的书不一样if(a != b && a != c && b != c)
{
printf("A:%2d B:%2d C:%2d\n", a, b, c);
i++;
if (i % 4 == 0)/每行最多输出四种借阅方法组合/
printf("\n");//\n为换行符,注释符后单加一\可直接注释下一行
}
printf("共有%d种有效借阅方法\n", i);
return 0;
}
//原代码生成解决方案耗时0.4秒,修改后的代码耗时0.303秒,若数据更多差异会更加明显,即高效性差异