浅谈C语言中的“枚举”

枚举,顾名思义就是“一个一个地举出来”。在处理很多问题时,程序中的变量只需要少量有意义的值。例如,用来存储一周中某一天的变量应该只有7种可能的值:Mon, Tue, Wed, Thu, Fri, Sat, Sun;用来存储扑克牌花色的变量应该只有4种可能的值:“黑桃”,“红桃”,“梅花”, “方片”。C语言提供枚举类型来定义这种变量。枚举即一一列举之意,枚举类型是一种值由程序员列出的类型,而且程序员必须为每个值命名(枚举常量),需要用关键字enum来定义。

enum Weekday = {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
enum Weekday someDay;

语句声明了名为Weekday的枚举类型,它的可能取值Sun, Mon, Tue, Wed, Thu, Fri, Sat。第二条语句定义了一个Weekday类型的变量someDay。

可以使用Sun, Mon, Tue, Wed, Thu, Fri, Sat中任意一个值给变量someDay赋值。例如:

someDay = Mon;

变量someDay还可以用在条件语句中,例如:

if(someDay == Tue){语句序列:}

也可以省略枚举标签直接声明变量,例如:

enum Weekday = {Sun, Mon, Tue, Wed, Thu, Fri, Sat} someDay;

解决问题:事件提醒程序

编写程序,实现一个事件提醒程序:如果今天是周一,输出“交英语作文”;如果是周二,输出“给妈妈打电话”;如果是周四,输出“看电影”;如果是周六,输出“篮球赛”;其它情况,输出“刷编程题”。

//事件提醒程序
#include<stdio.h>
#include<time.h>

enum weekday {Sun, Mon, Tue, Wed, Thu, Fri, Sat} ;
int main()
{
   time_t rawtime;  //定义一个代表日历时间的变量
   struct tm *timeinfo //定义一个指向tm结构变量的指针
   enum weekday wday; //定义一个枚举变量
   
   rawtime = time();
   timeinfo = localtime(&rawtime);
   wday = (enum weekday)timeinfo->tm_wday;
   
   switch(wady)
   {
    case Mon:
         printf("交英语作业\n");break;
    case Tue:
         printf("给妈妈打电话\n");break;
    case Thu:
         printf("看电影\n");break;
    case Sat:
         printf("篮球赛\n");break;
    default:
         printf("刷编程题\n");break;
    }
    return 0;
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值