El problema sigue en que el último elemento nunca será el número ganador(mayor) y que al tener un número que sea mayor que el actual ganador, este ganador pasa casi automáticamente a ser el segundo mayor.
Código:
for(i=0; i<4; i++)
{
if((puntaje[i]>puntaje[i+1])&&(puntaje[i]>puntaje[ganador]))
ganador=i;
}