看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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