Direi che deve essere

max = n;

e non il contrario.

E al posto di un ciclo for userei un do...while