[问题] enum使用问题

楼主: tarobear (塔落熊)   2015-05-07 16:29:20
开发平台(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
换一本书吧
楼主: tarobear (塔落熊)   2015-05-07 17:16:00
手上的是2003年的C语言教学手册,是以前能这样写吗?
作者: johnpage (johnpage)   2015-05-07 17:56:00
enum使用语法错误
作者: yvb   2015-05-07 18:10:00
C 可以, C++ 不行. 档案副档名为何? 你又是如何编译的?
作者: a22326284 (chin)   2015-05-08 00:08:00
第一个变量不是要给数值吗@@? 这样他才会往上加吧?看别人的程式 第一个变量给0 后面就变1 2 3 4 ...
作者: EdisonX (卡卡兽)   2015-05-08 01:04:00
第一个变量不给值的话内定是给 0, 一样往上加
作者: a22326284 (chin)   2015-05-08 03:00:00
原来是这样 又学到了 谢谢E大回大大 刚才用codeblocks测试 编译有过 也可执行耶@@
作者: EdisonX (卡卡兽)   2015-05-08 08:24:00
楼上板友说过了 c 可以 c++不行,其他可能等你有机会学c++讨论会好些。
作者: shadow0326 (非议)   2015-05-08 11:01:00
原来C可以(惊) 是会自动转型成int?
作者: ruthertw (小叶老大)   2015-05-08 11:20:00
哈哈,突然想起敝公司某个骗吃骗喝的资深网络工程师~你懂了这个,可以来敝公司担任网络开发部门经理修正: 敝公司 --> 敝目前任职的烂公司
楼主: tarobear (塔落熊)   2015-05-08 15:29:00
了解! 原来是跟编译有关, 一直以来都存成.cpp 所以不行
作者: EdisonX (卡卡兽)   2015-05-09 01:03:00
@shadow : C 是自动转 int 没错 . C++ 就...
作者: Killercat (杀人猫™)   2015-05-11 10:23:00
c会把很多无宣告的东西直接当成int
作者: 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

Links booklink

Contact Us: admin [ a t ] ucptt.com