[問題] 輸入5個浮點數,找出最大值

作者: NMOSFET (NMOSFET)   2015-04-22 17:55:53
開發平台(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....
作者: LPH66 (-6.2598534e+18f)   2015-04-22 18:15:00
%lf 是小寫 L 不是數字 1(是說課本裡沒對這點強調過嗎...?)%1f 會被認成輸入 %f 即 float 浮點數, 所以才會有你的2.那個 1 會被解釋為最多一個字, 所以你會發現即使改成 float你輸入的東西都只有一位數也由於最多一個字所以碰到 '.' 字 scanf 就不知道怎麼辦了才會只讓你輸入一次; 而 %f 跟 double 對不上所以讀進的值是錯亂的, 這就解釋了你的 1.(所以我個人覺得教 scanf 時一定要強調那是 L 不是 1 ...)
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-04-22 18:29:00
這種打字機時代的錯誤居然30年後還沒根除 X(
作者: LPH66 (-6.2598534e+18f)   2015-04-22 23:44:00
printf 的時候兩者沒差, 但 scanf 時就有差了所以為了簡單好記起見對應著用保證 OK
作者: firejox (Tangent)   2015-04-22 23:47:00
這一切都是字型的錯~
作者: cjcat2266 (CJ Cat)   2015-04-23 01:28:00
早期需要輸入CD上認證碼的遊戲,我也常常搞混O和L
作者: EdisonX (卡卡獸)   2015-04-23 08:21:00
讓我想到以前瘋找 c1.exe 的事…
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-04-23 09:45:00
小時候看dbase的書,他是寫給30年前只用過打字機的人看的,第一章就講「我知道很多人打字習慣用小寫l代替1,甚至小寫o代替0,不要這樣…」結果現在還是不時發生
作者: LiloHuang (十年一刻)   2015-04-23 20:09:00
像我用 Consolas 字型就沒這問題,0 中間會有一斜撇1 跟 l 長的也很不一樣 XD 建議可以換一個好一點的字體詳見 Top 10 programming fonts http://goo.gl/IbKZtb
作者: KoenigseggG (地表最速)   2015-04-23 20:46:00
怒噓,Monaco 只第六?是第八QQ
作者: uranusjr (←這人是超級笨蛋)   2015-04-23 23:23:00
以前也愛 Monaco, 但現在覺得不如用 Menlo 和 Consolas網頁上說得很中肯, Monaco 在字小(尤其沒有反鋸齒)的時候很讚, 但放大之後在現在的高解析度螢幕就不太行
作者: KoenigseggG (地表最速)   2015-04-23 23:56:00
嗯嗯謝謝你的分享。 我就是喜歡 Monaco 的小寫a啊~螢幕......目前只有筆電螢幕QQ
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-04-24 00:22:00
Monaco也太古意了一點(不過誰古得過pica阿)

Links booklink

Contact Us: admin [ a t ] ucptt.com