Ex2_24.cpp
上传用户:wuzhousb
上传日期:2022-07-12
资源大小:380k
文件大小:1k
源码类别:

书籍源码

开发平台:

Visual C++

  1. /*【例2.24】 口袋中有红、黄、蓝、白、黑五种颜色的球若干个,每次从口袋中取三个不同颜色的球,
  2. 统计并输出所有的取法。
  3. */
  4. #include<iostream>
  5. #include<iomanip>
  6. using namespace std;
  7. int main(){
  8. enum color_set {red,yellow,blue,white,black};
  9. color_set color;
  10. int i,j,k,counter=0,loop;
  11. for(i=red;i<=black;i++)
  12. for(j=red;j<=black;j++)
  13. if(i!=j){ //前两个球颜色不同
  14. for(k=red;k<=black;k++)
  15. if(k!=i&&k!=j){ //第三个球不同于前两个,满足要求
  16. counter++;
  17. if((counter)%22==0){ //每屏显示22行
  18. cout<<"请按回车键继续";
  19. cin.get();
  20. }
  21. cout<<setw(15)<<counter;
  22. /*下面输出每种取法,一行为一种取法的三个颜色*/
  23. for(loop=1;loop<=3;loop++){
  24. switch(loop){
  25. case 1: color=(color_set) i; break; //第一个是i
  26. case 2: color=(color_set) j; break; //第二个是j
  27. case 3: color=(color_set) k; break; //第三个是k
  28. }
  29. switch(color){
  30. case red:   cout<<setw(15)<<"red";   break;
  31. case yellow:cout<<setw(15)<<"yellow";break;
  32. case blue:  cout<<setw(15)<<"blue";  break;
  33. case white: cout<<setw(15)<<"white"; break;
  34. case black: cout<<setw(15)<<"black"; break;
  35. }
  36. }
  37. cout<<endl; //输出一种取法后换行
  38. }
  39. }
  40. cout<<"共有:"<<counter<<"种取法"<<endl;
  41. return 0;
  42. }