求助
  • 板块学术版
  • 楼主Lucifero
  • 当前回复12
  • 已保存回复12
  • 发布时间2020/12/19 17:12
  • 上次更新2023/11/5 05:55:52
查看原帖
求助
335094
Lucifero楼主2020/12/19 17:12

用以下代码实现输出平均数、中位数、极差、方差和标准差:(给数学作业偷懒)

#include <bits/stdc++.h>
#define full 300000001
using namespace std;
unsigned int n; 
double x[full],minn(1e6),maxn(-1e6),sum,bar;
double solve_variance()
{
	unsigned int i;
	double f=0;
	for(i=1;i<=n;i++) f+=(x[i]-bar)*(x[i]-bar);
	return f/n;
}
int main()
{
	//统计助手1.0
	unsigned int i;
	scanf("%u",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%lf",&x[i]);
		minn=min(minn,x[i]);
		maxn=max(maxn,x[i]);
		sum+=x[i];
	}
	sort(x+1,x+n+1);
	printf("************\n");
	bar=sum/n;
	printf("平均数 : %lf\n",bar);
	if (n%2==0) printf("中位数 : %lf\n",(x[n/2]+x[n/2+1])/2);
	else printf("中位数 : %lf\n",x[n/2]);
	printf("暂不支持众数!\n");
	printf("************\n");
	printf("极差 : %lf\n",maxn-minn);
	double d=solve_variance();
	printf("方差 : %lf\n",d);
	printf("标准差 : %lf\n",sqrt(d));
}

报了编译错误,球拍搓

2020/12/19 17:12
加载中...