開發平台(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