[問題] 輸入數字計算各種形狀體積

作者: andylinag (洛月)   2021-11-05 00:42:16
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
codeblock
問題(Question):
首先我想要算這6種體積(or表面積),輸入數字1到6,代表我想要算的種類(比如輸入3,我想算圓柱體積),後面接著她的半徑跟柱高。
比如說我輸入3 1 1,3代表執行的函式,後面1代表半徑跟柱高。
但我這幾個函式所要輸入的數字個數不太一樣,比如函式1,是要算長方體體積,那就需要長,寬跟柱高,也就是說我要輸入1 2 3 5才會得到體積是30
想請問我要怎麼設置,才能讓隨意看我要輸入任意位數,都能代進我要的函式呢,因為現在我的程式碼一定要完整輸入四個數字才會開始執行。
我的想法是用while迴圈,但我不清楚終止條件要怎麼設,希望各位幫幫我,謝謝大家了
餵入的資料(Input):
3 1 1
預期的正確結果(Expected Output):
3.14159265
錯誤結果(Wrong Output):
跑不出來
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
http://codepad.org/dB7nUmmz
補充說明(Supplement):
C語言
作者: NciscalA   2021-11-05 00:47:00
先判斷要執行那個函式再繼續讀
作者: pponywong (pony)   2021-11-05 08:37:00
http://codepad.org/LcUo3nlE大概改了一下 排版要多加強 很多編輯器都有支援排版了
作者: firejox (Tangent)   2021-11-05 09:30:00
直接讀一行然後用sscanf來切
作者: TWkobe (中華柯比)   2021-11-05 10:31:00
比較簡單的做法有用sscanf直接接使用者的輸入參數,再用strtok 取出每個參數,再檢查參數對應哪個fun, 是否參數足夠,是否有非法的可能另外一種改用va_list,一樣檢查對應操作Scant的話要用return來檢查是否有足夠input
作者: andylinag (洛月)   2021-11-05 11:03:00
瞭解了,謝謝各位的幫忙,我會再去練習!!

Links booklink

Contact Us: admin [ a t ] ucptt.com