c++关于求方差、标准差的问题,求解答!

为什么我计算结果中,方差、标准差的结果总是0?程序代码:#include<iostream>#include<cstdio>#include<cstdlib>#inclu... 为什么我计算结果中,方差、标准差的结果总是0?

程序代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
const int MAXN=1001;s
int main()
{
int n,x[MAXN],o=0;
float xba,s=0;
float p[MAXN]={0},k[MAXN]={0};
printf("请输入计算的个数,最多1000个");
cout<<endl;
cin>>n;
if(n>1000)
{
cout<<"Error.";
system("pause");
return 0;
}
cout<<"请依次输入各个数"<<endl;
for(int i=1;i<=n;i++)
{
cin>>x[n];
o+=x[n];
}
xba=o/n;
cout<<"平均数:"<<xba<<endl;
for(int j=1;j<=n;j++)
{
k[j]+=(x[j]-xba);
}
for(int z=1;z<=n;z++)
{
p[z]=(1/n*(pow(k[z],2)));
p[0]+=p[z];
}
cout<<"方差:"<<p[0]<<endl;
s=sqrt(p[0]);
cout<<"标准差:"<<s<<endl;
system("pause");
return 0;
}
求解答!
如果有答案,并测试成功的,必给重赏!!!
展开
 我来答
百度网友57b3b8d
2015-12-15 · TA获得超过280个赞
知道小有建树答主
回答量:238
采纳率:85%
帮助的人:175万
展开全部
p[z]=(1.0/n*(pow(k[z],2)));
这里是1.0,不然直接用1除的话,小数全部都会转变成0,就得不到答案了
还有最重要一点,数组是从0开始到n-1,不是从1开始到n
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式