口袋中有红黄蓝白黑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.编译

口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举、gcc编译)生成demo_11.13可执行文件。

4.运行结果

终端下输入./demo_11.13,结果如下图所示:

口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举、gcc编译)