题目描述
将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 }