當前位置:首頁 » 編程語言 » c語言求均方差指針
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求均方差指針

發布時間: 2022-12-15 07:32:19

⑴ 用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語言的編譯更具有彈性。