您的位置: 网站首页 > 程序开发 > C语言程序设计案例教程 > 第九章 结构体、共用体与枚举类型 > 【9.3 枚举类型案例】

9.3 枚举类型案例

 

9.3  枚举类型案例

案例9.4  五色球问题

【项目任务】

口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,求得到3种不同色的球的可能取法,并输出每种排列的情况。

【设计思路】

定义一个枚举类型,标识红、黄、蓝、白、黑5种颜色。

【程序代码】

#include <stdio.h>

enum color {red,yellow,blue,white,black};

void print(enum color c)

{

    switch(c)

    {

        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;

    }

}

main()

{

    enum color b1,b2,b3;   /*b1,b2,b3分别表示取出3个球的颜色*/

    int n=0;

 

    for(b1=red;b1<=black;b1++)

       for(b2=red;b2<=black;b2++)

          for(b3=red;b3<=black;b3++)

              if(b1!=b2 && b2!=b3 && b1!=b3)

              {

                  printf("%-4d",++n);

                  print(b1); print(b2); print(b3);

                  printf("\n");

              }

    printf("\ntotal:%5d\n",n);

}

【运行结果】

1   red       yellow    blue     

2   red       yellow    white    

3   red       yellow    black    

                   

                   

59  black     white     yellow   

60  black     white     blue     

total:   60

【知识拓展】

如果一个变量只有几种可能的值,那么可以将其定义成枚举类型,增强程序的可读性。

本章介绍了结构体、共用体两种构造数据类型,结构体可以解决由多种不同类型数据组成的数据实体问题。结构体和共用体都由成员组成,成员可以具有不同的数据类型。链表是一种非常重要的数据类型,它便于实现动态的存储分配。枚举是一种基本数据类型,枚举变量的取值通常是有限的,枚举元素是常量。使用typedef可以定义一种新类型名,照顾用户的编程习惯,增加程序的可读性。