在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型 显然是不妥当的。C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范围。枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
枚举enum就是英文enumerate的缩写,也就是列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,本质上也是算术类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。
枚举不写对应的值,枚举值默认从0开始
enum 枚举名 {
名称1, //0
名称2, //1
...
};
枚举也可以手工指定各个名称的值,语法格式如下:自定义枚举中每个元素对应的整数值,例如名称1的值为10,名称2的值为20。
enum 枚举名 {
名称1 = 10,
名称2 = 20,
...
};
如果我们想让枚举的起始值从1开始那么可以像这样
enum weekday
{
Mon = 1,
Tues,
Wed,
Thurs,
Fri,
Sat,
Sun
};
列:
#include <stdio.h>
//枚举颜色
enum color{red=1, oreange=2, yellow=3, green=4, ching=5, blue=6, purple=7};
//枚举一个星期的每一天 ,如果不赋值,默认枚举的值从0开始
enum week
{
Su, Mo, Tu, We, Th, Fr, Sa
};
//枚举每一个月(12个月)
enum month
{
January, February, March, April, May, June, July, August, September, October, November, December
};
int main() {
printf("%-3d %-3d %-3d %-3d %-3d %-3d %-3d \n", red, oreange, yellow, green, ching, blue, purple);
printf("%d %d %d %d %d %d %d\n", Su, Mo, Tu, We, Th, Fr, Sa);
printf("%d %d %d %d %d %d %d %d %d %d %d %d \n", January, February, March, April, May, June, July, August, September, October, November, December);
return 0;
}
枚举是一种类型,定义完毕类型后,还必须有定义枚举变量操作枚举,就好比买了汽车不会开,那么买车有啥用,
enum week{ Su, Mo, Tu, We, Th, Fr, Sa};
enum week a, b, c; //定义枚举变量
//给枚举变量赋值
a=Su;
b=Tu;
c=Sa;
也可以在定义枚举类型的同时定义变量和赋值:
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a=Mon, b=Tues, c=Sun;
判断用户输入的是星期几
#include <stdio.h>
int main(){
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;
scanf("%d", &day); //用户输入,给day枚举变量赋值
//判断用户输入符合啥条件
switch(day){
case Mon: puts("Monday"); break; //puts直接输出字符串
case Tues: puts("Tuesday"); break;
case Wed: puts("Wednesday"); break;
case Thurs: puts("Thursday"); break;
case Fri: puts("Friday"); break;
case Sat: puts("Saturday"); break;
case Sun: puts("Sunday"); break;
default: puts("Error!");
}
return 0;
}
点赞 -收藏-关注-便于以后复习和收到最新内容有其他问题在评论区讨论-或者私信我-收到会在第一时间回复感谢,配合,希望我的努力对你有帮助^_^
免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://huanmin.blog.csdn.net/article/details/125583266
内容来源于网络,如有侵权,请联系作者删除!