查看單個文章
  #9  
舊 2014-02-22, 01:30 AM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,020
預設

引用:
作者: a40136 查看文章
哈大:

書上是用getchar以及char去存使用者Input,是用ASCII去存,所以拿使用者輸出去減 '0' (注意這裡是指字元而非整數),就會取得差也就會是轉成整數了。

您的寫法要注意一點是您無法預估使用者會不會搗蛋,輸入超過臨界<1 >10的值而導致程式產生不可預期的狀態,範例就有輸入num做檢驗(num>=0 && num<10),這方面是比較好的做法,"永遠"不要相信使用者的輸入。
了解,剛才我再測試一下我的寫法,果然在某些情況下會出錯。例如我輸入1000000就會當掉,或者輸入a or ccc or g等非數字,結果全得到zero的結果。

而書上的範例則只容許0 to 9,沒有機會讓你打出10以上的數字,若打非數字則不顯示結果,但依然return 0,不會當掉。

看來我還是得再研究一下書本範例的邏輯推演,依我自己的直覺的邏輯推出來的確實有誤。十分感謝。

但拿使用者輸出去減 '0',這一點我還是搞不懂why doing so?
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章