Structures Assignment

For this assignment you will re-implement the functionality of the stats module from a previous assignment with a single function that returns a structure.

The Function

The function prototype is defined in stats.h like so:


 * Calculate the min, max, sum, range, and average of an array.


 * Parameters:

 *   array - the array on which to calculate the stats, must not be empty

 *   size - the number of elements in the array


 * Return:

 *   A stat_values struct containing stats from the array


struct stat_values calculate_stats(const int array[], size_t size);

The structure stat_values is also defined for you in stats.h:

struct stat_values {

    int min;

    int max;

    int sum;

    int range;

    double average;


Since calculate_stats() returns an instance of the stat_values structure, all of these values will be returned at once within the instance.

You are to write the body of the stats() function in stats.c. This is the only code that you need to edit. In the stats() function you will need to declare a stat_values structure, assign the appropriate values to its members, and then return it.

When we calculated these values individually, each of the functions used to calculate one of the values used a loop. Here we can gather all of the information we need to calculate the stats with a single loop. For full credit you must only use a single loop in your calculate_stats() function.


main.c contains code which asks you to enter an array, calls calculate_stats(), and prints the stats.


Push your submission to git-keeper. In addition to the above requirements, you will be graded on proper style.