⑴ 用c语言编写一个程序,定义一个函数,计算平均值,方差,标准差。请用指针完成
⑵ 使用指针 求10个数均方差
代码如下:
#include<stdio.h>
doubleavg(double*array,intnum)
{inti;doublesum=0;
for(i=0;i<num;++i)
{sum+=*(array+i);}
returnsum/num;
}intmain(){inti;doublearray[10];
printf("请输入10个值,按回车确版认 ");
for(i=0;i<10;++i){scanf("%lf",array+i);
}
printf("平均值为:权%g ",avg(array,10));}
(2)c语言求均方差指针扩展阅读:
一、方差的性质:
1.设C为常数,则D(C) = 0(常数无波动)。
2.D(CX)=C2D(X) (常数平方提取)。
二、平均差的特点:
平均差越大,表明各标志值与算术平均数的差异程度越大,该算术平均数的代表性专就越小;平均差越小,表明各标志值与算术平均数的差异程度越小,该算术平均数的代表性就越大。
⑶ 用c语言编写程序 输入3组数,求3组数的L的均方差,并输出
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
char s[80];
float x1,x0,y1,y0,sum=0.0,mean,L[3];
int i;
gets(s); // 用它跳过1行
for (i=0;i<3;i++){
scanf("%*s %*s %f %f %f %f",&x0,&y0,&x1,&y1); // 跳过操作员,零件批号,读一行
L[i]=sqrt( (x1-x0)*(x1-x0)+(y1-y0)*(y1-y0));
};
mean = (L[0]+L[1]+L[2])/3.0;
sum=( (L[0]-mean)* (L[0]-mean) + (L[1]-mean)* (L[1]-mean) +
(L[2]-mean)* (L[2]-mean) ) / 3.0;
sum = sqrt(sum);
printf("%f",sum);
}
⑷ 用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左右。说明系统自带的随机数发生器还是比较均匀的。
⑸ 求n个数的均方差,c语言
/*由于时间缘故,没有增加对输入数据的检查*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define N 10 /*暂定最多计算10个数的均方差,可根据实际修改该数*/
main()
{
float d[N],fsum,avg,temp;
char str[10];
int i,j,num;
printf("\n请输入不多于%d的数字:输入‘Y’或‘y’结束",N);
fsum=0.0;num=0;
for(i=0;i<N;i++)
{
printf("\nNO.%d : ",i+1);
scanf("%s",str);
if(stricmp(str,"y")==0)break;
d[i]=(float)atof(str);
fsum+=d[num++];
}
avg=fsum/num;
fsum=0.0;
for(i=0;i<num;i++)
{
temp=d[i]-avg;
fsum+=temp*temp;
}
fsum=sqrt(fsum/num);
printf("Standard Deviation:%f",fsum);
return 0;
}
⑹ c语言题目,输入n个数到一维数组a中,求均方差。
#include<stdio.h>
#include<math.h>
/*要把n传递出去,请用引用或者指针*/
voidinput(inta[],int&n)
{
inti;
n=100;
printf("inputnumbers: ");
for(i=0;i<=n-1;i++)
scanf("%d ",&a[i]);
}
/*数组定义时是int,这边要保持一致*/
floataverage(inta[],intn)
{
inti;
floatavg=0;
for(i=0;i<n;i++)
avg+=a[i];
avg=avg/(i+1);
returnavg;
}
/*数组定义时是int,这边要保持一致*/
floatstddev(inta[],intn)
{
/*sum需要初始化,否则结果会出错*/
floatsum=0.0;
floatM,D;
inti;
/*传递参数时直接用a,而不是a[]*/
M=average(a,n);
for(i=0;i<n;i++)
sum=sum+(a[i]-M)*(a[i]-M);
D=sqrt(sum/(i+1));
return(D);
}
voidmain()
{
/*数组的定义只能用常量来指定大小,要实现动态的,使用vector或者指针*/
intn;
inta[100];
/*传递参数时直接用a,而不是a[]*/
input(a,n);
printf("standarddeviationis:%f ",stddev(a,n));
}
小哥你的错误可真不少呀,基础知识不够牢固
⑺ c语言 求一组数的平均值及其均方差 写出程序,谢谢!
#include<stdio.h>
#include<math.h>
void main()
{
int i,N=4;
float sum1=0.0,sum2=0.0;
float average,variance;
float a[4];
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N;i++)
sum1+=a[i];
average=sum1/N;
printf("均值=%f\n",average);
for(i=0;i<N;i++)
sum2+=(a[i]-average)*(a[i]-average);
variance=sum2/N;
printf("方差=%f\n",variance);
printf("均方差=%f\n",sqrt(variance));
}
你要求几个数,帮N=4改成N=?以及下面的4改成?就可以了!!!
}
⑻ C语言程序实现求一组数的平均值的标准方差
1。求每一个数与这个样本数列的数学平均值之间的差,称均差;
2。计算每一个差的平方,称方差;
3。求它们的总和,再除以这个样本数列的项数得到均方差;
4。再开根号得到标准方差!
/* 方差和 */
double num[10]; //用10长度的数组举例
double sum = 0; //保存一下10个数的和
double pow2_sum = 0; //临时保存方差和
double __average; //临时保存均方差
double ans; //均方差
for(int i=0; i<10; i++){
sum += num[i];
}
for(int i=0; i<10; i++){
pow2_sum += pow(((sum/10)-num[i]), 2); //math.h平方函数求方差和
}
/* 求均方差 */
__average = pow2_sum/10;
/* 标准方差 */
ans = sqrt(__average);
⑼ c语言求n平均值与方差
#include<stdio.h>
#include<math.h>
#defineN100
intmain()
{ inta[N],i,n;
floataver=0.0,ss=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
{ scanf("%d",&a[i]);
aver+=a[i];//输入一个求一次平均值
}
aver/=n;//求出平均值
for(i=0;i<n;i++)
ss+=pow(a[i]-aver,2);
ss/=n-1;
printf("%.0f%.0f ",aver,ss);
}
⑽ 用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);
}
(10)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语言的编译更具有弹性。