枚举关键字enum可以定义一个变量吗?如enum day;这下面的三个enum各自作用是什么???

枚举关键字enum可以定义一个变量吗?如enumday;这下面的三个enum各自作用是什么???#include<stdio.h>enumweek{sun,mon,tur... 枚举关键字enum可以定义一个变量吗?如enum day;这下面的三个enum各自作用是什么???#include<stdio.h>
enum week{sun,mon,tur,wed,thu,fri,sat};
enum week tomorrow(day)
enum day;
{int n;
n=((int)day+1)%7;
return ((enum week)n);
}
main()
{
enum week day1,day2;
char *name[]={"sun","mon","tur","wed","thu","fri","sat"};
int n;
scanf("%d",&n);
day1=(enum week)n;
day2=tomorrow(day1);
printf("%s",name[(int)day2]);
}
展开
 我来答
风若远去何人留
2017-03-01 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450142
专业C/C++软件开发

向TA提问 私信TA
展开全部

enum在C语言里面, 和struct, union这两个关键字的作用是同等地位的,都是定义一个新的类型,而不是变量。 

比如

enum week{sun,mon,tur,wed,thu,fri,sat};

这个就是定义了一个类型 enum week。 注意 这两个单词加起来才是一个类型。 

在你的代码中 ,只有这个是定义类型的。 

其它的 有一些错误。 修改如下。 另外,关于enum部分的 给你加了注释

#include<stdio.h>
enum week{sun,mon,tur,wed,thu,fri,sat};//定义类型enum week
enum week tomorrow(enum week day)//不要用原本的写法。 不是所有编译器都支持的。 
//这里是定义了一个函数,参数为enum week类型的day, 返回值为enum week类型。 功能是求下一天是周几。 
{int n;
n=((int)day+1)%7;
return ((enum week)n);//将n强制转换为enum week类型。 其实这里的强制转换是没必要的。 可以去掉。 
}
main()
{
enum week day1,day2;//定义两个enum week类型的变量,day1和day2
char *name[]={"sun","mon","tur","wed","thu","fri","sat"};
int n;
scanf("%d",&n);
day1=(enum week)n;//这里 其实也是没必要的,另外, 输入的n必须是0到6之间的,否则会出错。 
day2=tomorrow(day1);
printf("%s",name[(int)day2]);
}
追问
哇,6的很
谢啦
百度网友8ce788f
2017-03-01 · TA获得超过688个赞
知道小有建树答主
回答量:850
采纳率:80%
帮助的人:220万
展开全部
这代码, 只能靠猜。。。
更多追问追答
追问
。。。
追答
enum week tomorrow(day)
enum day;
{int n;
n=((int)day+1)%7;
return ((enum week)n);
}
这断,不会出错吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式