/**
* Description:
* Computes the sum of all the elements from the array.
* Parameters:
* array - a pointer to the array
* size - the number of elements present in the array
* Returns:
* The sum of all elements from the array.
*/
double ArraySum(double* array, int size)
{
double sum = 0.0;
int i;
for(i=0; i<size; i++)
{
sum+=array[i];
}
return sum;
}
/**
* Description:
* Computes the product of all the elements from the array.
* Parameters:
* array - a pointer to the array
* size - the number of elements present in the array
* Returns:
* The product of all elements from the array.
*/
double ArrayProduct(double *array, int size)
{
double product = 1.0;
int i;
for(i=0; i<size; i++)
{
product*=array[i];
}
return product;
}
1.The Arithmetic Mean
The arithmetic mean is computed using the following formula:
where n represents the size of the array and xi represents the element at the i index. The implementation for the function is:
/**
* Description:
* Computes the arithmetic mean of all the elements from the array.
* Parameters:
* array - a pointer to the array
* size - the number of elements present in the array
* Returns:
* The arithmetic mean of all elements from the array.
*/
double ArithmeticMean(double* array, int size)
{
double result = ArraySum(array,size)/size;
return result;
}
2.The Geometric Mean
The geometric mean is computed by using the following formula:
where n represents the size of the array and xi represents the element at the i index. The implementation for the function is:
/**
* Description:
* Computes the geometric mean of all the elements from the array.
* Parameters:
* array - a pointer to the array
* size - the number of elements present in the array
* Returns:
* The harmonic mean of all elements from the array.
*/
double GeometricMean(double* array, int size)
{
double result = pow(ArrayProduct(array,size),
(1.0/(double)(size)));
return result;
}
3.The Harmonic Mean
The harmonic mean is computed by using the following formula:where n represents the size of the array and xi represents the element at the i index. The implementation for the harmonic mean function would be:
/**
* Description:
* Computes the harmonic mean of all the elements from the array.
* Parameters:
* array - a pointer to the array
* size - the number of elements present in the array
* Returns:
* The geometric mean of all elements from the array.
*/
double HarmonicMean(double* array, int size)
{
double result = 0;
int i;
for(i=0; i<size; i++)
{
result+=(1.0)/array[i];
}
result = (double)(size)*pow(result,-1.0);
return result;
}
4. Example
#include<stdio.h>
#include<math.h>
double ArraySum(double* array, int size);
double ArrayProduct(double *array, int size);
double ArithmeticMean(double* array, int size);
double GeometricMean(double* array, int size);
double HarmonicMean(double* array, int size);
int main(void)
{
/*Declaring an array which will hold 9 elements*/
double array[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0,7.0, 8.0, 9.0};
/*Printing the results of the functions*/
printf("Arithmetic mean = %lf\n"
"Harmonic mean = %lf\n"
"Geometric mean = %lf\n",
ArithmeticMean(array,9),
HarmonicMean(array,9),
GeometricMean(array,9));
return 0;
}
/*Output
Arithmetic mean = 5.000000
Harmonic mean = 3.181372
Geometric mean = 4.147166
*/
No comments:
Post a Comment
Got a question regarding something in the article? Leave me a comment and I will get back at you as soon as I can!