- 1、本文档共150页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.6 使用枚举类型 workday=mon; 正确 weekend=sun; 正确 weekday=monday; 不正确 说明: (1) C编译对枚举类型的枚举元素按常量处理,故称枚举常量。不要因为它们是标识符(有名字)而把它们看作变量,不能对它们赋值。例如: sun=0; mon=1; 错误 说明: (2) 每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5… 在上面定义中,sun的值为0,mon的值为1,…sat的值为6 如果有赋值语句: workday=mon; 相当于workday=1; 说明: (2) 每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5… 也可以人为地指定枚举元素的数值,例如: enum Weekday{sun=7,mon=1,tue, wed,thu,fri,sat}workday,week_end; 指定枚举常量sun的值为7,mon为1,以后顺序加1,sat为6。 说明: (3) 枚举元素可以用来作判断比较。例如: if(workday==mon)… if(workdaysun)… 枚举元素的比较规则是按其在初始化时指定的整数来进行比较的。 如果定义时未人为指定,则按上面的默认规则处理,即第一个枚举元素的值为0,故monsun,satfri 例9.12 口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。 解题思路: 解题思路: #include stdio.h int main() {enum Color{red,yellow,blue,white,black}; enum Color i,j,k,pri; int n,loop; 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; printf(“%-4d”,n); for (loop=1;loop=3;loop++) {switch (loop) { case 1: pri=i;break; case 2: pri=j;break; case 3: pri=k;break; default:break; } switch (pri) {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; } } printf(\n); } } printf(\ntotal:%5d\n,n); return 0; } 9.7 用typedef声明新类型名 1.简单地用一个新的类型名代替原有的类型名 typedef int Integer; typedef float Real; int i,j; float a,b; 与 Integer i,j; Real a,b; 等价 9.7 用typedef声明新类型名 2.命名一个简单的类型名代替复杂的类型表示方法 (1)命名一个新的类型名代表结构体类型: typedef struct { int month; int day; int ye
文档评论(0)