Hi Mark - after a quick initial look I think the problem is
The max* variables are pointers, and they point to elements in the array which hold the largest values. They are references. So when you find new largest values, you need to change where they point to, not the contents of what they are pointing at (array element values), which is what you are doing. Basically in those lines you need to drop the *s ie.
That changes where the pointers are pointing, instead of the values of what they are pointing at.
Right - hope that helps get you started, back to my own work
Will check back later.