【刷题小计124】中位数

来源:互联网 发布:火炬之光2mac版mod 编辑:程序博客网 时间:2024/06/07 18:56
描述

一组数据按从小到大的顺序依次排列,处在中间位置的一个数叫做中位数。

比如 1 5 10 11 9  其中位数就是9.因为排序过后,9处在中间位置。

现在给你一些数,请你求出其中位数。

输入
第一行输入一个整数T(1<=T<=1000)表示测试数据的组数。
随后的一行是一个奇数M,表示该组测试数据中共有M(1<=M<=1000)个数。
随后的一行有M个互不相同的整数,这些整数都不大于10000且不小于-10000。
输出

对于每组测试数据输出一个整数,表示这M个数的中位数。


思路:题目非常简单,先把数存下来,让后排序,最后输出中间的那个数。

#include <stdio.h>#include <stdlib.h>#define MAXSIZE 1000+1int main(){int Cases;    int arr[MAXSIZE];    scanf("%d",&Cases);    while(Cases--)    {int m,i,j;        int temp;        scanf("%d",&m);        for(i=0;i<m;i++)        {scanf("%d",&arr[i]);        }        for(i=0;i<m;i++)for(j=i+1;j<m;j++)            {if(arr[i]>arr[j])                {temp=arr[i];                    arr[i]=arr[j];                    arr[j]=temp;                }            }        printf("%d\n",arr[m/2]);                   }return 0;}






0 0