作者vincent59 (愛世代)
看板C_and_CPP
標題[問題] VC++ 新手一問 switch case
時間Sun Jun 19 22:44:22 2011
開發平台(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
推 Zephyr750:程式並不認得字串的意義,所以建這麼大的對應表是必要的 06/19 22:46
→ Zephyr750:除非你可以將字串成為這樣的規則建上去 06/19 22:47
→ vincent59:所以還是得建表囉 謝謝您的回答 06/19 22:48
推 ericinttu:輸入11, 輸出什麼? 輸入111, 又會輸出什麼? 06/19 22:48
推 purpose:等你學到後面就會有很多資料結構可以存,到時候再看你 06/19 22:48
→ purpose:愛用哪種就用哪種,這不是現在需要考慮的事情 06/19 22:48
→ vincent59:題目很單純 1到10而已 06/19 22:49
→ ericinttu:無腦的1對1建表, 或者分析數字轉成字串都可以. 06/19 22:49
→ ericinttu:你不是問"1~100 或1~10000 或1~XXXXX" ? 06/19 22:50
推 cooper6334:把字串存進陣列裡就不用switch case了吧 06/19 23:28
→ cooper6334:還可以把字串表打在檔案裡,程式碼就能縮短了 06/19 23:29
→ firejox:打入binary 就可以用fseek~~ 06/19 23:59
推 dSnAil:只有 1~10 當然就是這種硬幹法 06/20 02:54
→ dSnAil:超過20之後就可以找出一些規則來轉 06/20 02:54
→ dSnAil:不過基本的mapping table還是要的,只是數量沒你想的那麼多 06/20 02:55