当前位置:首页 » 编程语言 » c语言计算平均误差
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言计算平均误差

发布时间: 2023-08-22 19:30:18

❶ 用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);

}


(1)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 "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语言程序实现求一组数的平均值的标准方差

1。求每一个数与这个样本数列的数学平均值之间的差,称均差;

2。计算每一个差的平方,称方差;

3。求它们的总和,再除以这个样本数列的项数得到均方差;

4。再开根号得到标准方差!

/*方差和*/
doublenum[10];//用10长度的数组举例
doublesum=0;//保存一下10个数的和
doublepow2_sum=0;//临时保存方差和
double__average;//临时保存均方差
doubleans;//均方差

for(inti=0;i<10;i++){
sum+=num[i];
}
for(inti=0;i<10;i++){
pow2_sum+=pow(((sum/10)-num[i]),2);//math.h平方函数求方差和
}


/*求均方差*/
__average=pow2_sum/10;

/*标准方差*/
ans=sqrt(__average);

❹ 用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左右。说明系统自带的随机数发生器还是比较均匀的。

❺ c语言求平均数,最后有误差;麻烦帮我看一下,谢谢!

定义为float型,保留6位小数,最后的数字出现误差是正常的,原因是float型精度不足。解决方法:ave不用float型,改为double型。