0
点赞
收藏
分享

微信扫一扫

C语言 枚举类型

#include <stdio.h>

enum&nbsp;week&nbsp;{&nbsp;End,&nbsp;Monday,&nbsp;Tuesday,&nbsp;Wednesday,&nbsp;Thursday,&nbsp;Friday,&nbsp;Saturday,&nbsp;Sunday&nbsp;};

void&nbsp;monday(void){
puts(&quot;星期一&quot;);
}

void&nbsp;tuesday(void){
puts(&quot;星期二&quot;);
}

void&nbsp;wednesday(void){
puts(&quot;星期三&quot;);
}

void&nbsp;thursday(void){
puts(&quot;星期四&quot;);
}

void&nbsp;friday(void){
puts(&quot;星期五&quot;);
}

void&nbsp;saturday(void){
puts(&quot;星期六&quot;);
}

void&nbsp;sunday(void){
puts(&quot;星期天&quot;);
}

enum&nbsp;week&nbsp;select(void){
int&nbsp;tmp;

do&nbsp;{
printf(&quot;0.&nbsp;结束,&nbsp;1.&nbsp;星期一,&nbsp;2.&nbsp;星期二,&nbsp;3.&nbsp;星期三,&nbsp;4.&nbsp;星期四,&nbsp;5.&nbsp;星期五,&nbsp;6.&nbsp;星期六,&nbsp;7.&nbsp;星期天\n&quot;);
puts(&quot;请选择:&quot;);&nbsp;
scanf(&quot;%d&quot;,&nbsp;&amp;tmp);
}while&nbsp;(tmp&nbsp;&lt;&nbsp;End&nbsp;||&nbsp;tmp&nbsp;&gt;&nbsp;Sunday);
return&nbsp;tmp;
}

int&nbsp;main(void){
enum&nbsp;week&nbsp;selected;&nbsp;&nbsp;// 声明 enum week 型 的变量 selected

do{
switch&nbsp;(selected&nbsp;=&nbsp;select()){
case&nbsp;Monday&nbsp;:
monday();
&nbsp;&nbsp; break;
case&nbsp;Tuesday&nbsp;:
tuesday();&nbsp;
&nbsp; break;
case&nbsp;Wednesday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;wednesday();&nbsp;
break;
case&nbsp;Thursday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;thursday();&nbsp;
break;
case&nbsp;Friday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;friday();&nbsp;
break;
case&nbsp;Saturday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;saturday();&nbsp;
break;
case&nbsp;Sunday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;sunday();&nbsp;
break;
}
}while&nbsp;(selected&nbsp;!=&nbsp;End);

return&nbsp;0;
}

运行结果:
C语言 枚举类型_#include

enum week { End, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };

是枚举类型的声明,它表示了所有可用值的集合。其中,week 被称为枚举名。写在{}中的 End, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday 是枚举常量。

注:枚举名不是类型名。类型名称不是 week 型,而是 enum week 型。

如果在没有赋值给枚举常量赋值的情况下,枚举常量默认对应的值是从0开始按顺序为枚举常量定义了相应的整数值。实际上,这些值也能根据需要任意设置,只要在枚举常量的名称后面写上赋值运算符 “=” 和值就行了。

enum week { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, End };

通过赋值运算符 “ = ” 赋值的枚举常量,其值为给定值,没有给定值的枚举常量,其值为前一个枚举常量加1。

#include <stdio.h>

enum&nbsp;week&nbsp;{&nbsp;Monday&nbsp;=&nbsp;1,&nbsp;Tuesday,&nbsp;Wednesday,&nbsp;Thursday,&nbsp;Friday,&nbsp;Saturday,&nbsp;Sunday,&nbsp;End&nbsp;};

void&nbsp;monday(void){
puts(&quot;星期一&quot;);
}

void&nbsp;tuesday(void){
puts(&quot;星期二&quot;);
}

void&nbsp;wednesday(void){
puts(&quot;星期三&quot;);
}

void&nbsp;thursday(void){
puts(&quot;星期四&quot;);
}

void&nbsp;friday(void){
puts(&quot;星期五&quot;);
}

void&nbsp;saturday(void){
puts(&quot;星期六&quot;);
}

void&nbsp;sunday(void){
puts(&quot;星期天&quot;);
}

enum&nbsp;week&nbsp;select(void){
int&nbsp;tmp;

do&nbsp;{
printf(&quot;1.&nbsp;星期一,&nbsp;2.&nbsp;星期二,&nbsp;3.&nbsp;星期三,&nbsp;4.&nbsp;星期四,&nbsp;5.&nbsp;星期五,&nbsp;6.&nbsp;星期六,&nbsp;7.&nbsp;星期天,&nbsp;8.&nbsp;结束\n&quot;);
puts(&quot;请选择:&quot;);&nbsp;
scanf(&quot;%d&quot;,&nbsp;&amp;tmp);
}while&nbsp;(tmp&nbsp;&lt;&nbsp;Monday&nbsp;||&nbsp;tmp&nbsp;&gt;&nbsp;End);&nbsp;&nbsp;// 将 End 在枚举类型末端,星期一 位于首端 
return&nbsp;tmp;
}

int&nbsp;main(void){
enum&nbsp;week&nbsp;selected;&nbsp;&nbsp;&nbsp;// 声明 enum week 型 的变量 selected

do{
switch&nbsp;(selected&nbsp;=&nbsp;select()){
case&nbsp;Monday&nbsp;:
monday();
&nbsp;&nbsp; break;
case&nbsp;Tuesday&nbsp;:
tuesday();&nbsp;
&nbsp; break;
case&nbsp;Wednesday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;wednesday();&nbsp;
break;
case&nbsp;Thursday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;thursday();&nbsp;
break;
case&nbsp;Friday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;friday();&nbsp;
break;
case&nbsp;Saturday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;saturday();&nbsp;
break;
case&nbsp;Sunday&nbsp;:
&nbsp;&nbsp;&nbsp;&nbsp;sunday();&nbsp;
break;
}
}while&nbsp;(selected&nbsp;!=&nbsp;End);

return&nbsp;0;
}

运行结果:
C语言 枚举类型_#include_02

enum { MATGEMATICS, ADVANCED_MATHEMATICS = 0 };

程序中的枚举名可以省略,多个枚举常量也允许具有相同的值。

#include <stdio.h>

enum&nbsp;{&nbsp;MATGEMATICS,&nbsp;ADVANCED_MATHEMATICS&nbsp;=&nbsp;0&nbsp;};

void&nbsp;mathematics(void){
puts(&quot;数学&quot;);
}

void&nbsp;advanced_mathematics(void){
puts(&quot;高等数学&quot;);
}


int&nbsp;main(void){
int&nbsp;tmp;

puts(&quot;请选择:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;tmp);

switch&nbsp;(tmp){
case&nbsp;MATGEMATICS&nbsp;:
mathematics();
&nbsp;&nbsp; break;
}

switch&nbsp;(tmp){
case&nbsp;ADVANCED_MATHEMATICS&nbsp;:
advanced_mathematics();
&nbsp;&nbsp; break;
}

return&nbsp;0;
}

运行结果:
C语言 枚举类型_edn_03


举报

相关推荐

0 条评论