[爆卦]浮點 數 最大值是什麼?優點缺點精華區懶人包

為什麼這篇浮點 數 最大值鄉民發文收入到精華區:因為在浮點 數 最大值這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者NMOSFET (NMOSFET)看板C_and_CPP標題輸入5個浮點數,找出最大值(我問題有...

浮點 數 最大值 在 Taylor Ma 麗如 Instagram 的最讚貼文

2021-08-02 06:33:11

疫情期間宅在家~ 購買慾望沒有變少呀🙈 左滑右滑哪裡看有什麼東西可以買~ 收到包裹就像小女孩收到禮物一樣興奮🥰 - 法國頂級保養品牌Sisley 官網重新盛大開站了! 像我是第一次使用Sisley 的保養產品 不知道怎麼下手~ 就從明星產品 #神級乳液 開始~ 而且各大網紅都推爆! 我當然也要跟上潮...


開發平台(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

你可能也想看看

搜尋相關網站