用枚举定义变量的问题!
有5中不同颜色的球若干,问一次拿出三种不同色球的组合有多少种。下面的程序是已经编译成功的!但里面有几个看不太懂的,用红色注释标注。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
enum color{red,yellow,blue,white,black};
color pri;
int i,j,k,n=0,loop;
for(i=red;i<=black;i++) //这里的i没定义成color类型的类型,就可以直接使用color里的成员吗?
{
for(j=red;j<=black;j++)
{
if(i!=j)
{
for(k=red;k<=black;k++)
if((k!=i)&&(k!=j))
{
n=n+1;
cout<<setw(3)<<n;
for(loop=1;loop<=3;loop++)
{
switch (loop)
{
case 1:pri=color(i);break;
case 2:pri=color(j);break;
case 3:pri=color(k);break;
default: break;
}
switch(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;
return 0;
}
如果i可以直接使用枚举类型color里的成员,那定义color的变量pri还有何意义?
我试着把pri替换成一个新的整型变量x,编译也能通过,而且结果相同。
麻烦帮我解释一下定义枚举变量的意义,谢谢。
[ 本帖最后由 夕野先生 于 2010-6-10 17:15 编辑 ]