#include <stdio.h>
#define TEMP_SIZE 1000
#define HEIGHT_SIZE 10

double average(int[], int);
int sum(int data[], int size);
void printArray(int data[], int size);

int main(){

    int temperatures[TEMP_SIZE];
    int heights[5] = {2,3,4,5,6};
    int rabbits[200] = {1};

    int i;
    int total = 0;
    
    /* initialize first array */
    for(i = 0; i < TEMP_SIZE; i++)
	temperatures[i] = i * 5;

    printf("\n\ntemperatures are: ");
    printArray (temperatures, TEMP_SIZE);

    printf("temp average is %lf \n", average(temperatures, TEMP_SIZE) );
    printf("height average is %lf \n", average(heights, 5) );
    printf("rabbit average is %lf \n", average(rabbits, 200) );

    return 0;
}

double average(int data[], int size )
{
    double result = (double)sum(data, size) / size;
    return result;
}

/*
 * Computes the sum of elements in an array of given size.
 */ 
int sum(int data[], int size){
    int i;
    int total = 0;
    for(i = 0; i < size; i++)
	total = total + data[i];
    return total;
}


/* This function prints an integer array of any size, but the size
   must be passed in as a parameter. Note that the square brackets are
   needed inside the parameter list, since the compiler needs to know
   that the varaible data is an array being passed in, not just an
   integer */
void printArray(int data[], int size){
    int i;
    for(i = 0; i < size; i++){
	if (i % 5 == 0) 
	    printf("\n");
	printf("%6d ", data[i]);
    }
    printf("\n");

    return;
}
