
//枚举类型示例
/*例7.8 口袋中有红、黄、蓝、白、黑 5 种颜色的球若干个。每次从口袋中任意取出 3 个球,问得到 3 种不同
颜色的球的可能取法,输出每种排列的情况。*/
#include <iostream>
#include <iomanip> //输出时用到 setw 控制符
using namespace std;
int main( )
{ enum color { red,yellow,blue,white,black}; //声明枚举类型 color
color pri; //定义 color 类型的变量 pri
int i,j,k,n = 0,loop; //n 是累计不同颜色的组合数
for( i = red;i <= black;i++) //当 i 为某一颜色时
for( j = red; j <= black;j++) //当 j 为某一颜色时
if( i!=j) //若两个球的颜色不同
{ for( k = red;k <= black;k++) //只有两个球的颜色不同,才需要检查第三个球
if(( k != i) && ( k != j)) //三个球的颜色都不同
{ n = n + 1; //使累计值 n 加 1
cout << setw(3) << n; //输出当前的 n 值
for( loop = 1;loop <= 3;loop++) //先后对三个球作处理
{
switch( loop) // loop 的值先后为 1,2,3
{ case 1: pri = color(i); break; // color(i) 是强制类型转换,使 pri 的值为 i
case 2: pri = color(j); break; //使 pri 的值为 j
case 3: pri = color(k); break; //使 pri 的值为 k
default: break;
}
switch ( pri) //判断 pri 的值,输出相应的“颜色”
{
case red: cout << setw(8) << "red"; break;
case yellow: cout << setw(8) << "yellow"; break;
case blue: cout << setw(8) << "blue"; break;
case white: cout << setw(8) << "white"; break;
case black: cout << setw(8) << "black"; break;
default: break;
}
}
cout << endl;
}
}
cout << "total:" << n << endl;
system("pause");
return 0;
}
/*例7.8 口袋中有红、黄、蓝、白、黑 5 种颜色的球若干个。每次从口袋中任意取出 3 个球,问得到 3 种不同
颜色的球的可能取法,输出每种排列的情况。*/
#include <iostream>
#include <iomanip> //输出时用到 setw 控制符
using namespace std;
int main( )
{ enum color { red,yellow,blue,white,black}; //声明枚举类型 color
color pri; //定义 color 类型的变量 pri
int i,j,k,n = 0,loop; //n 是累计不同颜色的组合数
for( i = red;i <= black;i++) //当 i 为某一颜色时
for( j = red; j <= black;j++) //当 j 为某一颜色时
if( i!=j) //若两个球的颜色不同
{ for( k = red;k <= black;k++) //只有两个球的颜色不同,才需要检查第三个球
if(( k != i) && ( k != j)) //三个球的颜色都不同
{ n = n + 1; //使累计值 n 加 1
cout << setw(3) << n; //输出当前的 n 值
for( loop = 1;loop <= 3;loop++) //先后对三个球作处理
{
switch( loop) // loop 的值先后为 1,2,3
{ case 1: pri = color(i); break; // color(i) 是强制类型转换,使 pri 的值为 i
case 2: pri = color(j); break; //使 pri 的值为 j
case 3: pri = color(k); break; //使 pri 的值为 k
default: break;
}
switch ( pri) //判断 pri 的值,输出相应的“颜色”
{
case red: cout << setw(8) << "red"; break;
case yellow: cout << setw(8) << "yellow"; break;
case blue: cout << setw(8) << "blue"; break;
case white: cout << setw(8) << "white"; break;
case black: cout << setw(8) << "black"; break;
default: break;
}
}
cout << endl;
}
}
cout << "total:" << n << endl;
system("pause");
return 0;
}