Parecen muchas comparaciones,
Si a, b, c y d son los nros,
Una alternativa es quedarse con el maximo entre a y b, luego comparar el maximo con c, cambiando el maximo de ser necesario y luego el maximo con d. Resultando en 3 comparaciones para obtener el maximo del conjunto.
Código C:
Ver originalif( a > b )
maximo = a;
else
maximo = b;
if( c > maximo )
maximo = c;
if( d > maximo )
maximo = d;
printf( "Maximo: %d", maximo
);