记录编号 130148 评测结果 AAAAAAAAAA
题目名称 [USACO Mar08] 自动统计机 最终得分 100
用户昵称 Gravatar微凉徒眸意 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2014-10-21 20:33:21 内存使用 0.32 MiB
显示代码纯文本
/*奶牛们最近在学习统计学理论,但那些机械烦琐的对数据的统计分析几乎把她们搞疯了。于是奶牛们找到了你,希望你能帮帮她们。
你拿到了一张写着N (1 <= N <= 500)个数的表,表中第i个数字为X_i (-5,000 <= X_i <= 5000),你的任务是计算如下两个值:
所有数的平均数(所有数的和除以N)
所有数的中位数(如果N是奇数,中位数为排序后的数列里位于正中的那个;如果N是偶数,中位数是排序后的数列位于正中的两个数的平均数)
保留6位小数输出
程序名: stats
输入格式:
第1行: 1个正整数N
第2..N+1行: 第i+1为1个整数:X_i
输入样例 (stats.in):
5
12
4
6
8
2
输出格式:
第1行: 输出所有数的平均数
第2行: 输出所有数的中位数
输出样例 (stats.out):
6.400000
6.000000
输出说明:
平均数:(12+4+6+8+2)/5=6.4
数表{2, 4, 6, 8, 12}的中位数为6*/
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[510];
int main()
{
	freopen("stats.in","r",stdin);
	freopen("stats.out","w",stdout);
	int n;
	double ans1=0,ans2=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		ans1+=a[i];
	}
	ans1/=n;
	sort(a+1,a+1+n);
	if(n%2)
	{
		ans2=a[n/2+1];
	}
	else
	{
		ans2=(a[n/2]+a[n/2+1])/2.0;
	}
	printf("%.6lf\n%.6lf\n",ans1,ans2);
	return 0;
}