Buonasera.
Sto cercando di imparare il linguaggio C e ho riscontrato difficoltà con un esercizio che sono riuscito a risolvere ma, in maniera meno “elegante” della soluzione proposta, la quale, però, se la implemento nel mio codice non si riesce a compilarla.


codice:
/*Scrivere  un codice che richieda in ingresso tre valori interi distinti e ne determini
 il maggiore facendo uso dell'espressione condizionale "?:"  */
#include<stdio.h>
 
main()
{
    int a, b, c, x;  //dichiarazione delle variabili
    printf("immettere 3 valori:");
    scanf("%d", &a);
    scanf("%d", &b);
    scanf("%d", &c);
  
    /*il mio testo di riferimento consiglia come soluzione: */
    printf("\n il maggiore e': %d\n", (x=(a>b)?a:b)?c:x:c);
}
Scritto in questo modo non riesco a compilarlo. Ho provato a modificarla ma con scarsi risultati e purtroppo non sono riuscito a trovare esempi simili nelle guide cartacee di cui dispongo. Se qualcuno mi spiegasse dove risiede l’errore gliene sarei infinitamente.

Saluti.