口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举、gcc编译)
1.题目
口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举)
2.代码
#include <stdio.h>
void main()
{
enum color {red,yellow,blue,white,black};
enum color i, j, k, pri;
int n = 0, loop;
for(i=red;i<=black;i++)
for(j=red;j<=black;j++)
if (i != j)
{
for (k = red; k <= black; k++)
{
if ((k != i) && (k != j))
{
n = n + 1;
printf("%-4d", n);
for (loop = 1; loop <= 3; loop++)
{
switch (loop)
{
case 1:pri = i; break;
case 2:pri = j; break;
case 3:pri = k; break;
default:break;
}
switch (pri)
{
case red:printf("%-10s", "red"); break;
case yellow:printf("%-10s", "yellow"); break;
case blue:printf("%-10s", "blue"); break;
case white:printf("%-10s", "white"); break;
case black:printf("%-10s", "black"); break;
default:break;
}
}
printf("\n");
}
}
}
printf("\ntotal:%5d\n", n);
}
3.编译
生成demo_11.13可执行文件。
4.运行结果
终端下输入./demo_11.13,结果如下图所示: