Array Functions Activity

For this assignment you have been given a program which asks for an array from the user and calculates the maximum value in the array. Try compiling and running this program before you proceed.

You are to add 3 more functions to this program which calculate the minimum, sum, and average of the values in the array.

Prototypes and Documentation

Here are the prototypes and documentation for the functions you need to write:

/**
 * Find the minimum value in an array of integers. The array must contain at
 * least one element.
 *
 * Parameters:
 *     array - the array to search
 *     size - the number of elements in array
 *
 * Return value:
 *     The minimum value in the array
 */
int min_value(const int array[], size_t size);

/**
 * Find the sum of an array of integers. The array must contain at least
 * one element.
 *
 * Parameters:
 *     array - the array on which to calculate the sum
 *     size - the number of elements in array
 *
 * Return value:
 *     The sum of the values in the array
 */
int sum(const int array[], size_t size);

/**
 * Find the average of an array of integers. The array must contain at least
 * one element.
 *
 * Parameters:
 *     array - the array on which to calculate the average
 *     size - the number of elements in array
 *
 * Return value:
 *     The average of the values in the array
 */
double average(const int array[], size_t size);

min_value()

The min_value() function will be very similar to the max_value() function, you will just need to check for each value being smaller than the min rather than larger than the max.

sum()

To calculate the sum you will need to set a sum variable to 0 and then loop over the array elements, adding the value of each element to the sum.

average()

Calculating the average simply involves calculating the sum and then dividing the sum by the size. Write this function after you write sum() so that you can use the sum() function within this function.

Remember that an int divided by an int is going to give you an int and we want the average as a double. So you will need to cast either the sum or the size to a double in your division. To cast a variable named var to a double you would write (double)var.

For full credit on this assignment your average() function must not include a loop (use the sum() function instead).

main()

main() contains the following lines:

    printf("Max: %i\n", max_value(array, array_size));
    //printf("Min: %i\n", min_value(array, array_size));
    //printf("Sum: %i\n", sum(array, array_size));
    //printf("Average: %lf\n", average(array, array_size));

Uncomment each of the commented out lines as you complete each function.

Submission and Grading

Push your code to git-keeper, which will run some tests. For full credit you must pass all the tests and follow all the requirements above. Your functions must not print anything out, the only printing must be done in main(). You will also be graded on proper style.