[Arrays]D. Liang 6.11 Computing standard deviation.c

Description

Exercise 5.22 computes the standard deviation of numbers. This exercise uses a different but equivalent formula to compute the standard deviation of n numbers.

sum = x1 + x2 + … + xn

mean = sum / n

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

To compute deviation with this formula, you have to store the individual numbers using an array, so that they can be used after the mean is obtained.
You program should contain the following functions:

/* 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)

Hint

You should submit the implementation of the function but do not submit the main() function.
Problem Source: 程序设计I Chapter6 Arrays

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

My code:

//   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;
}   
Published 245 original articles · praised 255 · 10,000+ views

Guess you like

Origin blog.csdn.net/qq_45645641/article/details/105602234