這次的題目是這個

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

若想閱讀相關文章請關注我的粉絲團

小資菜鳥向前衝

https://www.facebook.com/%E5%B0%8F%E8%B3%87%E8%8F%9C%E9%B3%A5%E5%90%91%E5%89%8D%E8%A1%9D-204484273323335/?fref=ts

文章標籤
創作者介紹

cychss6305的部落格

cychss6305 發表在 痞客邦 PIXNET 留言(0) 人氣()