[問題] VC++ 新手一問 switch case

看板C_and_CPP作者 (愛世代)時間14年前 (2011/06/19 22:44), 編輯推噓5(5010)
留言15則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2008 Win32主控台應用程式 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 這是一本書上的簡易習題,使用者輸入數字1~10 在螢幕上顯示相對應的英文字。 這題不難,我寫出來了。 但是我想到的是如果數字是1~100 或1~10000 或1~XXXXX。 以這種方式不就打到死了 。 請問各位先進 有比較好的做法嗎??? 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include<iostream> #include<conio.h> using namespace std ; int main() { int number; cout<<"簡易練習"; cout<<"這是一個key in 數字1到10會將轉成其對應的英文字 "<<endl; cin>>number; switch (number) { case 1: cout<<"One"<<endl; break; case 2: cout<<"Two"<<endl; break; case 3: cout<<"Three"<<endl; break; case 4: cout<<"four"<<endl; break; case 5: cout<<"Five"<<endl; break; case 6: cout<<"Six"<<endl; break; case 7: cout<<"Seven"<<endl; break; case 8: cout<<"Eight"<<endl; break; case 9: cout<<"Nine"<<endl; break; case 10: cout<<"Ten"<<endl; break; } system("pause"); return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.21.111

06/19 22:46, , 1F
程式並不認得字串的意義,所以建這麼大的對應表是必要的
06/19 22:46, 1F

06/19 22:47, , 2F
除非你可以將字串成為這樣的規則建上去
06/19 22:47, 2F

06/19 22:48, , 3F
所以還是得建表囉 謝謝您的回答
06/19 22:48, 3F

06/19 22:48, , 4F
輸入11, 輸出什麼? 輸入111, 又會輸出什麼?
06/19 22:48, 4F

06/19 22:48, , 5F
等你學到後面就會有很多資料結構可以存,到時候再看你
06/19 22:48, 5F

06/19 22:48, , 6F
愛用哪種就用哪種,這不是現在需要考慮的事情
06/19 22:48, 6F

06/19 22:49, , 7F
題目很單純 1到10而已
06/19 22:49, 7F

06/19 22:49, , 8F
無腦的1對1建表, 或者分析數字轉成字串都可以.
06/19 22:49, 8F

06/19 22:50, , 9F
你不是問"1~100 或1~10000 或1~XXXXX" ?
06/19 22:50, 9F

06/19 23:28, , 10F
把字串存進陣列裡就不用switch case了吧
06/19 23:28, 10F

06/19 23:29, , 11F
還可以把字串表打在檔案裡,程式碼就能縮短了
06/19 23:29, 11F

06/19 23:59, , 12F
打入binary 就可以用fseek~~
06/19 23:59, 12F

06/20 02:54, , 13F
只有 1~10 當然就是這種硬幹法
06/20 02:54, 13F

06/20 02:54, , 14F
超過20之後就可以找出一些規則來轉
06/20 02:54, 14F

06/20 02:55, , 15F
不過基本的mapping table還是要的,只是數量沒你想的那麼多
06/20 02:55, 15F
文章代碼(AID): #1D_Wj8nN (C_and_CPP)