【C++程式設計練習】任意給定 n 個有序整數,求這 n 個有序整數序列的最大值,中位數和最小值
阿新 • • 發佈:2019-08-02
題目來源
題目描述
老師給了你n個整陣列成的測量資料,保證有序(可能為升序或降序),可能存在重複的資料。請統計出這組測量資料中的最大值、中位數以及最小值,並按照從大到小的順序輸出這三個數。
輸入格式
從標準輸入讀入資料。第一行輸入一個整數n,在第二行中存在n個有序的整數,表示測量資料,可能為升序或降序排列,可能存在連續多個整數相等,整數與整數之間使用空格隔開。
輸出格式
輸出到標準輸出。包含一行,包括最大值、中位數以及最小值共三個數,並按照從大到小的順序輸出。資料與資料之間使用空格隔開。對於整數請直接輸出整數,對於可能出現的分數,請輸出四捨五入保留1位小數的結果。
樣例輸入1
3
-1 2 4
樣例輸出1
4 2 -1
樣例輸入2
4
-2 -1 3 4
樣例輸出2
4 1 -2
提交程式碼
#include <iostream> #include <iomanip> using namespace std; int main() { int i, n, x, max, min; float med=0; cin >> n; cin >> x; min = max = x; for (i = 1; i < n; i++) { cin >> x; min = (x <= min) ? x : min; max = (x >= max) ? x : max; if (n % 2 != 0 && i == ((n + 1) / 2 - 1)) med = x; if (n % 2 == 0) if (i == (n / 2 - 1) || i == n / 2) med+=x/2.0; } if (n == 1) med = x; cout << max << " "; if (med == int(med)) cout << int(med); else cout << fixed << setprecision(1) << med; cout<<" " << min; return 0; }
執行結果
評測通過,得分為:100.0,以下為詳細資訊:
使用者名稱 | 試題名稱 | 程式碼長度 | 程式語言 | 評測結果 | 得分 | 時間使用 | 空間使用 |
---|---|---|---|---|---|---|---|
XavierJ | 小中大 | 548B | C++ | 正確 | 100 | 140ms | 532.0KB |
溫馨提示
要確保程式中沒有“請輸入n”之類的輸入輸出提示,也沒有輸出中間的結果,所有的輸出內容都與題設中的輸出格式相對應。輸出格式(包括換行和大小寫等)與題設中輸出格