[問題] 不定個數正整數取平均

作者: stayhungry (跳跳跳跳虎)   2019-02-28 12:53:03
開發平台(Platform): (Ex: Win10, Linux, ...)
Windows 8.1
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Code Blocks 17.12
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
請問一下
當輸入為0時不會進入while迴圈,所以count的值維持=0,預期應該要印出N/A
當輸出1 2 3 0時,總共進入迴圈3次,預期的平均值為(1+2+3)/3=2.000000
實際上印出1.500000
當輸入2 2 2 2 0時,預期平均值為(2+2+2+2)/4=2.000000
實際上印出1.600000
由結果推斷count的值 似乎都比預期的值多1?
請問問題出在哪裡呢?
先謝謝大大不吝指導
餵入的資料(Input):
第一筆input: 0
第二筆input: 1 2 3 0
第三筆input: 2 2 2 2 0
預期的正確結果(Expected Output):
第一筆output: N/A
第二筆output: 2.000000
第三筆output: 2.000000
錯誤結果(Wrong Output):
第一筆output: 0.000000
第二筆output: 1.500000
第三筆output: 1.600000
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://pastebin.com/a1nsTruC
補充說明(Supplement):
作者: sun409 (DontGoXX)   2019-02-28 13:15:00
輸入 0 的時候,count 還是 + 1 了
作者: loveme00835 (髮箍)   2019-02-28 13:15:00
第一次判斷 number 值的時候, 值是從哪裡來的?
作者: stayhungry (跳跳跳跳虎)   2019-02-28 13:28:00
看懂了!要scanf 完才能判斷有沒有等於0 謝謝兩位大大
作者: allensheng (上將帽子)   2019-02-28 17:16:00
count多了1
作者: Vent (Avec le Vent)   2019-02-28 17:18:00
num不給初值就判斷是不是不太好啊
作者: loveme00835 (髮箍)   2019-02-28 20:13:00
這邊適合用 do-while 改寫
作者: stayhungry (跳跳跳跳虎)   2019-02-28 20:30:00
謝謝大家,後來改寫成這樣,進迴圈之前先執行一次scanfhttps://pastebin.com/8bkJZ9Bwdo while的寫法我再想想看do-while 的寫法也懂了 謝謝https://pastebin.com/s6BSf9es
作者: loveme00835 (髮箍)   2019-03-01 00:46:00
scanf 也有回傳值, 也可以一起做判斷

Links booklink

Contact Us: admin [ a t ] ucptt.com