I have to take the following code and make it tail recursive.

I am not looking for the answer, but how to find the answer. How to work through this to understand what I need to do. Our hint is that we can change the parmeters of the function, like changing the number/type of the functions arguments.

// this program returns the maximum value in an array

int max(int numbers[ ], int size) {

if (size == 1)

return *numbers;

int first = *numbers;

int rec_max = max(numbers+1, size-1);

if (first > rec_max) return first;

return rec_max;

}