关于取球有关问题,帮忙看看错哪了

关于取球问题,帮忙看看哪里错了
//口袋有红,黄,蓝,白,黑5种颜色的球若干.每次从口袋中取出3个不同颜色的球,问有多少种取法
#include   <iostream.h>
enum   colors{red,yellow,blue,white,black}pri;
void   main()
{
    int   i,j,k,loop,n=0;
    while(i <=black)
      {
        i=red;
        while(j <=black)
        {
          j=red;
          if(i!=j)
            {
while(k <=black)
{
    k=red;
    if((k!=i)&&(k!=j))
    {
      n+=1;
      cout.width(4);
      cout < <n;
      for(loop=1;loop <4;loop++)

    {
      switch(loop)
                        {
      case   1:pri=(enum   colors)i;break;
      case   2:pri=(enum   colors)j;break;
      case   3:pri=(enum   colors)k;break;
    default:break;
      }
    switch(pri)
{
case   red:cout < < "red ";break;
case   yellow:cout < < "yellow ";break;
case   blue:cout < < "blue ";break;
case   white:cout < < "white ";break;
case   black:cout < < "black ";break;
default:break;
}

}
cout < <endl;
}
k++;
                }
            }j++;
          }i++;
}
      cout < < "total: " < <n < <endl;
}









------解决方案--------------------
c5 3=10啊
求排列啊 改一下就好了

#include "iostream.h "
char *color[10]={ "red ", "yellow ", "blue ", "white ", "black "};
int buffer[10];
void pailie(int n,int m,int count)
{
if(m==0)
{
for(int j=0;j <3;j++)
cout < <color[buffer[j]] < < " ";
cout < <endl;
}
for(int i=0;i <n;i++)
{
for(int k=0;k <count;k++)
if(buffer[k]==i)
goto next;
buffer[count]=i;
pailie(n,m-1,count+1);
next: ;
}



}

void main()
{
pailie(5,3,0);
}