C语言的枚举类型

枚举类型的学习

枚举类型(enum)

(1)概念
定义:将变量的可能取值一一列举出来,变量的值只限于列举出来的值的范围内。
(2)定义
enum 枚举类型名 {枚举常量列表}[变量名];
(枚举常量不能赋值,是常量)
隐式定义:在C语言中规定了枚举常量的默认值依次等于0、1、2、……等整型数值。
显式定义:在定义类型的同时指定枚举常量的值,其中如有未指定的枚举常量,则根据前面的枚举常量的值依次递增1。
例如:
enum weekday {Sun,Mon,Tue,Wed.Thu,Fri,Sat};
0 1 2 3 4 5 6
enum op {plus=43,minus=45,multiply=42,divide=47};
enum workday {Mon=1,Tue,Wed,Thu,Fri};
2 3 4 5
先定义枚举类型再定义变量
定义枚举类型同时定义变量
直接定义枚举类型变量
(3)运算
enum weekday {Sun,Mon,Tue,Wed.Thu,Fri,Sat};
1)赋值运算
enum weekday a,b;
a=Mon;
强制类型转换:b=(enum weekday)1
2)关系运算
按照他们各自的枚举常量的大小进行比较
Sun>Sat 为0
注意:枚举值不能直接输入输出,输入通过序号转换,输出(通过switch语句)以字符串的方式输出。

题目:已知口袋中有红、黄、白、蓝、黑共5个不同颜色的小球,若依次从袋中取出3个,问得到
三种不同颜色的求可能取法,可能取法共有多少种?

#include <stdio.h>
enum ball {red,yellow,white,blue,black};
int main(void)
{
	int i,t=0;
	enum ball b[3];
	for(b[0]=red;b[0]<=black;b[0]++)
	    for(b[1]=red;b[1]<=black;b[1]++)
	        for(b[2]=red;b[2]<=black;b[2]++)
	        {
	        	if(b[0]!=b[1]&&b[0]!=b[2]&&b[1]!=b[2])
	        	{
	        		for(i=0;i<3;i++)
	        		{
	        			switch(b[i])
	        			{
	        				case red:printf("red\t");break;
	        				case yellow:printf("yellow\t");break;
	        				case white:printf("white\t");break;
	        				case blue:printf("blue\t");break;
	        				case black:printf("black\t");break;
						}
					}
					++t;
		            printf("\n");
				}
			}
	printf("一共有%d种取法\n",t);
	return 0;
}

结果
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这周末在做梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值