[アレイ] D。Liang 6.11標準偏差の計算.c

説明文

演習5.22は、数値の標準偏差を計算します。この演習では、異なるが同等の式を使用して、n個の数値の標準偏差を計算します。

合計= x1 + x2 +…+ xn

平均=合計/ n

偏差= sqrt((x1-mean)^ 2 +(x2-mean)^ 2 +…+(xn-mean)^ 2)/(n-1))

この式で偏差を計算するには、配列を使用して個々の数値を保存する必要があります。これにより、平均が取得された後にそれらを使用できます。
プログラムには、次の関数を含める必要があります。

/* Function for computing mean of an array of double values */
double mean(double x[], int size)

/* Function for computing mean of an array of int values */
double mean(int x[], int size)

/* Function for computing deviation of an array of double values */
double deviation(double x[], int size)

/* Function for computing deviation of an array of int values */
double deviation(int x[], int size)

ヒント

関数の実装を送信する必要がありますが、main()関数は送信しないでください。
問題の出典:手順设计I Chapter6配列

source.h:

#ifndef UNTITLED3_SOURCE_H
#define UNTITLED3_SOURCE_H

/* Function for computing mean of an array of double values */
double mean_double(double x[], int size);

/* Function for computing mean of an array of int values */
double mean_int(int x[], int size);

/* Function for computing deviation of an array of double values */
double deviation_double(double x[], int size);

/* Function for computing deviation of an array of int values */
double deviation_int(int x[], int size);
#endif //UNTITLED3_SOURCE_H

私のコード:

//   Date:2020/4/18
//   Author:xiezhg5
/* Function for computing mean of an array of double values */
double mean_double(double x[], int size)
{
    int i;
    double sum=0,mean=0;
    for(i=0;i<size;i++)
    sum=sum+x[i];
    mean=sum/size;
    return mean;
}

/* Function for computing mean of an array of int values */
double mean_int(int x[], int size)
{
    int i;
    int sum=0;
    double mean=0;
    for(i=0;i<size;i++)
    sum=sum+x[i];
    mean=sum/size;
    return mean;
}

/* Function for computing deviation of an array of double values */
double deviation_double(double x[], int size)
{
	//下面这一大段可以调用mean函数实现太懒了 
    int i;
    double sum=0,sum1=0,mean=0,deviation=0;
    for(i=0;i<size;i++)
    sum=sum+x[i];
    mean=sum/size*1.0;
    
    for(i=0;i<size;i++)
    sum1=sum1+pow(x[i]-mean,2);
    deviation=sqrt((sum1)/(size-1));
    return deviation;
}

/* Function for computing deviation of an array of int values */
double deviation_int(int x[], int size)
{
	//下面这一大段可以调用mean函数实现太懒了 
    int i;
    int sum=0;
    double sum1=0;
    double mean=0;
    double deviation=0;
    for(i=0;i<size;i++)
    sum=sum+x[i];
    mean=1.0*sum/size;
    
    for(i=0;i<size;i++)
    sum1=sum1+pow(x[i]-mean,2);
    deviation=sqrt((1.0*sum1)/(size-1));
    return deviation;
}   
245の元の記事を公開 255を賞賛 10,000以上のビュー

おすすめ

転載: blog.csdn.net/qq_45645641/article/details/105602234