本文主要是介绍北邮OJ-276. 中位数-14计院上机A,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给定一个长度为N的非降数列,求数列的中位数。
中位数:当有序数列的项数N为奇数时,处于中间位置的变量即为中位数;当N为偶数时,中位数则为处于中间位置的两个数的平均数。
输入格式
输入数据第一行是一个整数T(1<=T<=100),表示测试数据的组数。
对于每组测试数据:
第一行是一个正整数N(1<=N<=100),表示数列长度。
第二行有N个整数,整数之间用空格隔开,所有的整数都不超过100000,表示这个数列的元素。
输出格式
对于每组测试数据,输出数列的中位数,请不要输出小数点末尾多余的0。
输入样例
2
4
1 1 2 2
5
1 1 2 2 3
输出样例
1.5
2
#include <iostream>
#include <cstdio>
#define MAXSIZE 120
using namespace std;
int main(){int t,n;int buf[MAXSIZE];scanf("%d",&t);while (t--){//inputscanf("%d",&n);for (int i=0;i<n;i++){scanf("%d",&buf[i]);}//output if (n%2==1)printf("%d",buf[n/2]);else{int sum=(buf[n/2-1]+buf[n/2]);sum%2==0?printf("%d",sum/2):printf("%.1lf",sum*1.0/2);}printf("\n");}return true;
}
这篇关于北邮OJ-276. 中位数-14计院上机A的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!