c语言课件枚举类型_第1页
c语言课件枚举类型_第2页
c语言课件枚举类型_第3页
c语言课件枚举类型_第4页
c语言课件枚举类型_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、枚举类型知识概要枚举类型是 新标准所增加的。如果一个变量只有几种可能的值,则可以定义为枚举类型。所谓“枚举”是将变量的值一一列举出来,变量的值只限于列举出来的值得范围。知识内容枚举类型用 开头。例如 :,;了一个枚举类型 ,可以用此类型定义变量。例如 :, 和 被定义为枚举变量,它们的值只能是 和 之一。例如:是正确的。当然,也可以直接定义枚举变量,例如:, 其中 、 称为枚举元素或枚举常量。它们是用户定义的标识 符。这些标识符并不自动地代表什么含义。例如,不能因为写出 ,就自动代表“星期天”。其实不写 而写成 也可以。用什么标识符代表什么含义,完全由程序员决定,并在程序中做相应的处理。说明:

2、1) 在 C 编译中,对枚举元素按常量处理,故称枚举常量。它们不是变量,不能对它们赋值。例如:sun=0; mon=1;是错误的。2) 枚举元素作为常量,它们是有值得,C 语言编译按定义时的顺序使它们的值为 0,1,2在上面定义中,sun 的值为 0,mon 的值为 1sat 的值为 6.如果有赋值语句:workday=mon;workday 变量的值为 1.这个整数是可以输出的。例如:prf(“%d”,workday);将输出整数 1.也可以改变枚举元素的值,在定义是由程序员指定,例如:enumkdaysum=7,mon=1,tue,wed,thu,fri,satworkday,k_end;

3、定义 sun 为 7,mon 为 1,以后顺序加 1,sat 为 6.3) 枚举值可以用来做判断比较。例如:if(workday=mon) if(workdaysum)枚举值得比较规则是按其在定义时的顺序号比较的。如果定义时未人为指定,则第一个枚举元素的值认作 0,故 monsumfri。4) 一个整数不能直接赋给枚举变量。例如:workday=2;是不对的。它们属于不同的类型。应先进行强制类型转换才能赋值。例如:workday=(enumkday)2;它相当于将顺号为 2 的枚举元素赋给 workday,相当于workday=tue;甚至可以试表达式。例如:workday=(enumkday

4、)(5-3);例题:口袋中有红、黄、蓝、白、黑 5 种颜色的球若干个。每次从口袋中先后取出 3 个球,问得到 3 种不色的球的可能取法,输出每种排列情况。球只能是 5 种色之一,而且要判断各球是否同色,应该用枚举类型变量处理。设取出的球为 i、j、k。根据题意,i、j、k 分别是 5 种色球之一,并要求 ijk。可以用穷举法,即一种可能一种可能地试,看哪一组符合条件。算法如下图:实现“输出一种取法”,采用下图的方法:程序如下:#include voidmain()enumcolor red,yellow,blue,white,black;enum color i,j,k,pri;n,loop;

5、n=0;for(i=red;i=black;i+) for(j=red;j=black;j+)if(i!=j)for(k=red;k=black;k+) if(k!=i) & (k!=j)n=n+1;prf(“%-4d”,n);for(loop=1;loop=3;loop+) switch(loop)case 1:case 2:case 3: default:pri=i; break;pri=j; break; pri=k; break;break;switch(pri) case case case case casered:prf(“%-10s”,”red”);break;yellow:p

6、rf(“%-10s”,”yellow”);break;f(“%-10s”,”blue”);break;f(“%-10s”,”white”);break;f(“%-10s”,”black”);break;blue:white: black:prpr prdefault:break;prf(“n”);prf(“ntotal:%5dn”,n);运行结果如下:123.redred red.yellowyellow yellow.blueblue blue.585960blackblack blackwhitewhite whiteredyellow bluetotal:60有人说,不用枚举类型常量而用常数 0 代表“红”,1 代表“黄”不也可以吗?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论