這次的題目是這個
http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=30786
最大值與最小值
Time Limit: 1 seconds
問題描述 :
寫一個程式來找出輸入的十個數字的最大值和最小值,數值不限定為整數,且值可存放於 float 型態數值內。
輸入說明 :
輸入十個數字,以空白間隔。
輸出說明 :
輸出數列中的最大值與最小值,輸出時需附上小數點後兩位數字。
輸入範例: 輸出範例:
-2 -15.2 0 89.5 100 25.3 7 30 76 4 maximum:100.00
minimum:-15.20
0 3 52.7 998 135 -256 79 95 10 16 44 maximum:998.00
inimum:-256.00
這題可以用迴圈來決定輸入的次數,也可以用字串輸入,之後用空白分割
我就用迴圈來寫
這裡教一個叫做vector的陣列
如果是普通的陣列,想要存到裡面,就必須先決定陣列大小,再指定存取的位置
例如:
int arr[3]:
int input;
cin>>input;
arr[0]=input;
先指定到arr的第1位,再將input存到這裡
這個陣列用在可以存取到特定位置
不過vector不用指定大小,而且可以照順序存放
怎麼存放呢
就如圖片所示,先進來的會存在第1個,後進來的就會存在後面
而這題的連續十個輸入,用vector就可以按順序存放進陣列裡
vector的宣告方式是這樣
vector<型別>名字
要把東西存放進vector的程式碼這樣寫
陣列名稱.push_back(東西);
結果
如果是不知道幾筆的輸入,存到vector陣列裡,可以用
arr.size()來得知陣列的長度
輸出結果
繼續做這題,寫完了輸入,也存進陣列了
接下來就是比大小
先宣告
float max=arr[0];
float min=arr[0];
把陣列第1個都當作max跟min的初始值
再來用迴圈搜尋陣列的每個位置
只要比max就把max指定為arr[i];
或只要比min小就把min指定為arr[i]
所以到最後陣列裡的最大值跟最小值都出來了
之後再按照題目要求印出位數
印出結果
這題還需印出一些文字就完成了
其他vector的功能可以參可這篇文章
https://facebookfanpage2016.hackpad.com/C-vector-i7MLDG2m9ML
若想閱讀相關文章請關注我的粉絲團
小資菜鳥向前衝
留言列表