当前位置:首页 » 编程语言 » 标准差公式的c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

标准差公式的c语言

发布时间: 2022-08-27 04:59:15

❶ 急求~ 用c语言编程的相对标准差的程序

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double std_dev(double *data,int n); //计算标准差,传输数据为n个double类型数组
double relative(double *data,int n);//计算相对标准差。
int main(){
double data[100];
int i=0;
int n=0;
printf("最多输入99个数字,输入任意字母开始计算\n");
while(1){
if(scanf("%lf",&data[i++])!=1)break;
n++;
}//while
printf("输入了%d个数据\n",n);
printf("std_dev:%g\n",std_dev(data,n));
printf("relative std_dev:%g%%\n",relative(data,n));

system("pause");
return 0;
}//main

double std_dev(double *data,int n){
double ret=0,average=0,sum=0;
int i=0;
double *p=data;
while(i<n){
sum+=*p;
p++;
i++;
}//while
average=sum/n;
sum=0;
p=data;
for(i=0;i<n;i++){
sum+=(*p - average)*(*p - average);
p++;
}//for

return sqrt(sum/n);
}//function std_dev

double relative(double *data,int n){
double ret=0,average=0,sum=0;
int i=0;
double *p=data;
while(i<n){
i++;
sum+=*p;
p++;
}//while
average=sum/n;
return std_dev(data,n)/average*100;
}//fun relative

❷ 标准差的计算公式

标准差的计算公式:

(2)标准差公式的c语言扩展阅读:

标准误表示的是抽样的误差。因为从一个总体中可以抽取出无数多种样本,每一个样本的数据都是对总体的数据的估计。标准误代表的就是当前的样本对总体数据的估计,标准误代表的就是样本均数与总体均数的相对误差。

标准误是由样本的标准差除以样本容量的开平方来计算的。从这里可以看到,标准误更大的是受到样本容量的影响。样本容量越大,标准误越小,那么抽样误差就越小,就表明所抽取的样本能够较好地代表总体。

❸ 非常急急!!!!用C语言函数求标准差,还有平均数

#include<stdio.h>
#include"math.h"
main()
{
float sum=0,s=0,mean,stand;
int i,j,value,a[100],n=0;
printf("Input values (input -1 to stop):\n");
scanf("%d",&value);
while(value!=-1&&n<=100)
{
a[n]=value;
sum+=a[n];
scanf("%d",&value);
n++;
}
mean=sum/n;
printf("Number of items: %d\n\n",n);
for(j=0;j<n;j++)
s+=(a[j]-mean)*(a[j]-mean);
stand=sqrt(s/n);
printf("Mean:%f\n\n",mean);
printf("standard deviation:%f\n\n",stand);}

❹ 关于求平均数和标准差的C语言问题

pjz=pjz1(10,n[9]);
s=st1(10,n[9],pjz);
把n[9]改为n

❺ 用C语言如何算平均数和方差及标准差

由于没有指明数据的来源,下面就从文本文件"data.txt"中取出一些学生的身高数据,并计算平均值,方差和标准差!代码如下:

#include<stdio.h>

#include <math.h>

#define hh printf(" =================================== ");

void main()

{

FILE *fp;

float a[520],x,avr,fc,bzc,t,sum=0.0;

int i,k=0;

fp=fopen("D:\data.txt","r");

if(fp==NULL)

printf("文件打开失败! ");

else

{

printf("身高数据: ");

fscanf(fp,"%f",&x);

while(x!=0)

{

a[k++]=x;

printf("%.0f ",x);

sum+=x;

fscanf(fp,"%f",&x);

}

avr=sum/k;

sum=0;

for(i=0;i<k;i++)

sum+=(a[i]-avr)*(a[i]-avr);

fc=sum/(k-1);

bzc=sqrt(fc);hh

printf(" 学生人数:%d ",k);

printf(" 身高均值:%.2f ",avr);

printf(" 身高方差:%.2f ",fc);

printf("身高标准差:%.2f ",bzc);

}

hh

fclose(fp);

}


(5)标准差公式的c语言扩展阅读:

c语言的特点

1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3、不同的变量类型可以用结构体(struct)组合在一起。

4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5、部份的变量类型可以转换,例如整型和字符型变量。

6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。

7、预编译处理(preprocessor)让C语言的编译更具有弹性。

❻ 用c语言定义一个函数,计算平均数,方差,标准差。(请用指针完成)

//计算平均数,方差,标准差。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#defineN100
voidTongJi(doublea[],intn,double*aver,double*vari,double*stdDev){
//对长度为n的数组a进行统计,统计其平均值aver、方差vari、标准差stdDev
inti;
double*p,aver2;
*aver=0.0;
for(p=a+(n-1);p>=a;--p){
*aver+=*p;//累加各元素
aver2+=(*p)*(*p);//累加各元素的平方
}
*aver/=n;//求平均值
aver2/=n;//求平方的平均值
*vari=aver2-(*aver)*(*aver);//计算方差
*stdDev=sqrt(*vari);//计算标准差
}
intmain(){
doublea[N],pj,fc,bzc;
inti;
srand(time(NULL));
for(i=0;i<N;++i){
a[i]=rand()/(RAND_MAX+1.0);//产生随机小数[0,1)
printf("%lg",a[i]);
}
TongJi(a,N,&pj,&fc,&bzc);
printf(" PingJun=%lg,FangCha=%lg,BiaoZhunCha=%lg",pj,fc,bzc);
printf(" Finished! ");
getch();
return0;
}

顺便做了一个测试:产生100个随机小数,得到其平均值大概在0.5左右,方差在0.08左右,标准差在0.28左右。说明系统自带的随机数发生器还是比较均匀的。

❼ 标准差的计算公式是什么

标准差公式:样本标准差=方差的算术平方根=s=sqrt(((x1-x)²+(x2-x)²+……(xn-x)²)/(n-1))。总体标准差=σ=sqrt(((x1-x)²+(x2-x)²+……(xn-x)²)/n)。


标准差详解及示例

标准差是一组数值自平均值分散开来的程度的一种测量观念。一个较大的标准差,代表大部分的数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。

例如,两组数的集合{0,5,9,14}和{5,6,8,9}其平均值都是7,但第二个集合具有较小的标准差。

❽ C语言求平均值,标准差

#include "stdio.h"
#include "math.h"
#define N 100
void main()
{
int a[N],n,i;
float aver,s;
float sum=0,e=0;
printf("请输入样本量:");
scanf("%d",&n);
printf("请输入%d个样本:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
aver=sum/n;
for(i=0;i<n;i++)
e+=(a[i]-aver)*(a[i]-aver);
e/=n-1;
s=sqrt(e);
printf("平均数为:%.2f,方差为:%.2f,标准差为:%.2f\n",aver,e,s);
}

❾ 在C++中如何用C++的语言来表示求均值和标准差 奖励10分!

/*求所有数据平均值*/
int average( dataList * list )
{
int sum = 0;

for ( int i = 0; i < list->length; i++ )
{
sum += list->data[i];
}

return sum/list->length;
}

/*求标准差*/
int var( dataList * list )
{
int averg;
int varX = 0; // 方差
int stdDev; // 标准差

averg = average( list );
for ( int i = 0; i < list->length; i++ )
{
varX += ( list->data[i] - averg)*( list->data[i] - averg);
}
varX /= list->length;
stdDev = sqrt( varX );

return ;
}

两个函数

一个是求平均数的

一个是求标准差的

数据存在形如

typedef struct
{
int data[100];
int length; // 现有数据个数
}dataList;

的结构体里

❿ C语言输出均值与标准差,帮我看看哪里错了。。

均值的就没错了,估计你的方差公式写错了,给你改了,看注释
#include<stdio.h>
#include<math.h>
void main()
{
int n,i;
scanf("%d",&n);
float a[100],s1,s2,x1,x2;
s1=0;s2=0;
for(i=1;i<=n;i++)
scanf("%f",&a[i]); //是&a[i]
for(i=1;i<=n;i++)
{
s1=s1+a[i];
s2=s2+a[i]*a[i];
}
x1=s1/n;
x2=sqrt(s2/(double)n); //强制转换成double
printf("%.4f %.4f",x1,x2);
}