水題 求中位數
阿新 • • 發佈:2019-01-10
題目描述:
中位數定義:一組資料按從小到大的順序依次排列,處在中間位置的一個數(或最中間兩個資料的平均數). 給出一組無序整數,求出中位數,如果求最中間兩個數的平均數,向下取整即可(不需要使用浮點數)
輸入描述:
該程式包含多組測試資料,每一組測試資料的第一行為N,代表該組測試資料包含的資料個數,1<=N<=10000. 接著N行為N個數據的輸入,N=0時結束輸入
輸出描述:
輸出中位數,每一組測試資料輸出一行
輸入樣例:
4
10
30
20
40
3
40
30
50
4
1
2
3
4
0
輸出樣例:
25
40
2
AC程式碼:
#include <bits/stdc++.h> using namespace std; int main() { int N; while(cin >> N && N) { int a[N]; for(int i = 0; i < N; i++) { cin >> a[i]; } sort(a,a+N); //升序排列 if(N%2 != 0) //若陣列是奇數個 { cout << a[N/2] << endl; } else //若陣列是偶數個 { cout << (a[N/2]+a[N/2-1])/2 << endl; } } return 0; }