⑴ c語言 求方差
直接上代碼:
#include<stdio.h>
#include<conio.h>
#include<math.h>
doublefangcha(doublex[],intn){
//求數組x(具有n個元素)的方差:S=(<x^2>-<x>)^0.5
inti;
doublexaver=0.0,x2aver=0.0;
for(i=0;i<n;++i){
xaver+=x[i];x2aver+=x[i]*x[i];
}
xaver/=n;x2aver/=n;//求x的平均、x^2的平均
returnsqrt(x2aver-xaver*xaver);
}
intmain(){
doublex[5];
inti;
printf("Input5datas: ");
for(i=0;i<5;++i){
scanf("%lf",&x[i]);
}
printf(" FangChaS=%.4lf",fangcha(x,5));
printf(" Finished! ");
getch();
return0;
}
希望能幫助到你。
⑵ 用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語言程序實現求一組數的平均值的標准方差
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 #include #include #include #include #define N 100void TongJi(double a[],int n,double *aver,double *vari,double *stdDev){ //對長度為n的數組a進行統計,統計其平均值aver、方差vari、標准差stdDev ...
⑸ 方差,極差標准差,怎麼求
極差=最大值-最小值,數據1,2,3,4,極差=4-1=3。
「方差」與「標准差」在這是很難列出,對「方差」開方即為「標准差」。
方差和標准差分為和樣本兩種情況。樣本方差以圖片顯示。
⑹ 求助,C語言,求方差的編程問題!
#include <stdio.h>
int main ( void )
{
float *x, *p, E, D;
int i, n;
printf ( "n=" );
scanf ( "%d", &n );
p = x = (float*) malloc ( sizeof(float) * n );
E = D = 0.0;
for ( i = n; i > 0; i-- )
{
scanf ( "%f", p );
E += *p++;
}
E /= n;
p = x;
for ( i = n; i > 0; i-- )
{
float tmp;
tmp = *p++ - E;
D += tmp * tmp;
}
D /= n;
free ( x );
printf ( "%f", D );
return 0;
}
⑺ 用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);
}
(7)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語言的編譯更具有彈性。