开发平台(Platform):C
问题(Question):enum使用问题
喂入的资料(Input):
这是书本的自我评量题目:利用列举型态将一个星期的英文列出
以下是我的程式内容
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<math.h>
enum week
{
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
}day;
int main(void)
{
int i;
for(day=Monday;day<=Sunday;day++)
{
switch(day)
{
case 0:printf("Monday\n");
break;
case 1:printf("Tuesday\n");
break;
case 2:printf("Wednesday\n");
break;
case 3:printf("Thursday\n");
break;
case 4:printf("Friday\n");
break;
case 5:printf("Saturday\n");
break;
case 6:printf("Sunday\n");
break;
}
}
printf("\n\n");
system("PAUSE");
return 0;
}
结果: 编译时就出现错误, 要我填入operator,
好奇的是我的写法应该跟书本范例相同, 不知为何会失败?
查了一下文章, 似乎是还要再将day定义成int?
这样的话是书本写错了吗...
作者:
firejox (Tangent)
2015-05-07 16:49:00换一本书吧
手上的是2003年的C语言教学手册,是以前能这样写吗?
作者:
johnpage (johnpage)
2015-05-07 17:56:00enum使用语法错误
作者: yvb 2015-05-07 18:10:00
C 可以, C++ 不行. 档案副档名为何? 你又是如何编译的?
第一个变量不是要给数值吗@@? 这样他才会往上加吧?看别人的程式 第一个变量给0 后面就变1 2 3 4 ...
作者:
EdisonX (卡卡兽)
2015-05-08 01:04:00第一个变量不给值的话内定是给 0, 一样往上加
原来是这样 又学到了 谢谢E大回大大 刚才用codeblocks测试 编译有过 也可执行耶@@
作者:
EdisonX (卡卡兽)
2015-05-08 08:24:00楼上板友说过了 c 可以 c++不行,其他可能等你有机会学c++讨论会好些。
哈哈,突然想起敝公司某个骗吃骗喝的资深网络工程师~你懂了这个,可以来敝公司担任网络开发部门经理修正: 敝公司 --> 敝目前任职的烂公司
了解! 原来是跟编译有关, 一直以来都存成.cpp 所以不行
作者:
EdisonX (卡卡兽)
2015-05-09 01:03:00@shadow : C 是自动转 int 没错 . C++ 就...
作者: anyoiuo 2015-05-15 17:52:00
for(int day=Monday;day<=Sunday;day++)主要是"day" 既是变量名也为Enum type的名子
作者:
EdisonX (卡卡兽)
2015-05-16 02:38:00楼上 , 你哪里看到他码里写 int day 了 ?
作者: anyoiuo 2015-05-21 09:36:00
意思只是要加int...上面确实没int day没错XDD