zoukankan      html  css  js  c++  java
  • 【排序】找中间数

    题目描述

    将N(N为奇数)个数排序,必有一个数在这N个数的中间位置。请输出中间位置上的这个数。第一行输入N的值(N≤10000),第二行输入这N个不同的数(每个数的范围在10-20~1020之间)。

    输入

    第一数字N表示有N个数,接下来N个数

    输出

    输出其中位数 保留两位小数。

    样例输入

    7
    5 4 2 1 3 9 10
    

    样例输出

    4.00
    直接定义double类型的数组,用sort排序,最后输出中间的数就行了
    这题我一开始定义的数组是从0~n-1的,排完序输出a[n/2],然后就WA
    我换成1~n,排完序输出a[(n+1)/2]就AC了
    不知道为什么~~~
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 double a[10005];
     5 int n;
     6 int main()
     7 {
     8     scanf("%d",&n);
     9     for(int i=1;i<=n;i++)
    10         scanf("%lf",&a[i]);
    11     sort(a+1,a+1+n);
    12     printf("%.2lf
    ",a[(1+n)/2]);
    13     return 0;
    14 }
    View Code
    如有错误,请指正,感谢!
  • 相关阅读:
    扩展正则表达式 练习题
    Linux特殊符号
    文件属性下
    文件属性和ls -lhi
    复习之前的和补充一些内容
    第二关练习题总结完结
    云服务器防ssh攻击
    实验四+085
    实验3+085
    第5次作业+085
  • 原文地址:https://www.cnblogs.com/scott527407973/p/9449674.html
Copyright © 2011-2022 走看看