看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 問題(Question): 輸入5個浮點數找出最大質 程式碼(Code): #include<stdio.h> double maximum(double a, double b, double c, double d, double e); int main(void) { double number1 = 0; double number2 = 0; double number3 = 0; double number4 = 0; double number5 = 0; printf("%s", "請輸入五個小數: \n"); scanf("%1f %1f %1f %1f %1f", &number1, &number2, &number3, &number4,&number5); printf("最大值為:%1f\n", maximum(number1, number2, number3, number4,number5)); system("pause"); return 0; } double maximum(double a, double b, double c, double d, double e) { double max = a; if (b>max) { max = b; } if (c>max) { max = c; } if (d>max) { max = d; } if (e>max) { max = e; } return max; } 補充說明(Supplement): 1.我輸入整數時沒問題,輸入小數只讓我輸入一次 2.不管輸入多少(整數)都無法比較,只會輸出0.000000 但是把全部double型態改成float型態卻能正常比較(整數) 且輸出正確值 3. http://pastebin.com/A9W72kas 這是課本的答案 把小於改大於就是我要的答案(求最大值),輸入小數 也沒問題,可是我看不出它的程式和我打的差在哪裡 懇求哪位大大肯幫我解惑 ORZ.... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.18.29.27 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1429696557.A.09A.html ※ 編輯: NMOSFET (163.18.29.27), 04/22/2015 18:00:54
LPH66: %lf 是小寫 L 不是數字 1 04/22 18:15
LPH66: (是說課本裡沒對這點強調過嗎...?) 04/22 18:16
LPH66: %1f 會被認成輸入 %f 即 float 浮點數, 所以才會有你的2. 04/22 18:17
LPH66: 那個 1 會被解釋為最多一個字, 所以你會發現即使改成 float 04/22 18:18
LPH66: 你輸入的東西都只有一位數 04/22 18:18
LPH66: 也由於最多一個字所以碰到 '.' 字 scanf 就不知道怎麼辦了 04/22 18:19
LPH66: 才會只讓你輸入一次; 而 %f 跟 double 對不上所以讀進的值 04/22 18:21
LPH66: 是錯亂的, 這就解釋了你的 1. 04/22 18:21
LPH66: (所以我個人覺得教 scanf 時一定要強調那是 L 不是 1 ...) 04/22 18:22
MOONRAKER: 這種打字機時代的錯誤居然30年後還沒根除 X( 04/22 18:29
感謝L大大,到剛剛為止我都一直以為float和double都是用%f顯示,難怪之前寫的程式 用到double都會怪怪的,當初看答案1f想說是不是預留空間,沒想到是L 囧~~ ※ 編輯: NMOSFET (163.18.29.27), 04/22/2015 22:01:30
LPH66: printf 的時候兩者沒差, 但 scanf 時就有差了 04/22 23:44
LPH66: 所以為了簡單好記起見對應著用保證 OK 04/22 23:44
firejox: 這一切都是字型的錯~ 04/22 23:47
cjcat2266: 早期需要輸入CD上認證碼的遊戲,我也常常搞混O和L 04/23 01:28
EdisonX: 讓我想到以前瘋找 c1.exe 的事… 04/23 08:21
MOONRAKER: 小時候看dbase的書,他是寫給30年前只用過打字機的人看 04/23 09:45
MOONRAKER: 的,第一章就講「我知道很多人打字習慣用小寫l代替1, 04/23 09:45
MOONRAKER: 甚至小寫o代替0,不要這樣…」結果現在還是不時發生 04/23 09:46
LiloHuang: 像我用 Consolas 字型就沒這問題,0 中間會有一斜撇 04/23 20:09
LiloHuang: 1 跟 l 長的也很不一樣 XD 建議可以換一個好一點的字體 04/23 20:10
LiloHuang: 詳見 Top 10 programming fonts http://goo.gl/IbKZtb 04/23 20:13
KoenigseggG: 怒噓,Monaco 只第六? 04/23 20:46
KoenigseggG: 是第八QQ 04/23 20:46
uranusjr: 以前也愛 Monaco, 但現在覺得不如用 Menlo 和 Consolas 04/23 23:23
uranusjr: 網頁上說得很中肯, Monaco 在字小(尤其沒有反鋸齒)的 04/23 23:23
uranusjr: 時候很讚, 但放大之後在現在的高解析度螢幕就不太行 04/23 23:24
KoenigseggG: 嗯嗯謝謝你的分享。 我就是喜歡 Monaco 的小寫a啊~ 04/23 23:56
KoenigseggG: 螢幕......目前只有筆電螢幕QQ 04/23 23:56
MOONRAKER: Monaco也太古意了一點(不過誰古得過pica阿) 04/24 00:22