[Mini Sondage C++] Condition courte

Elwish Messages postés 40 Statut Membre -  
Elwish Messages postés 40 Statut Membre -
Bonjour,

Ceci s'adresse aux programmeurs C++. Je voudrais juste savoir combien de personnes sont capables de tranformer cette mini condition de 4 lignes, en 1 seul ligne.

La condition à réduire :

if (a > b)
max = a;
else
max = b;

5 réponses

  1. D-Predator Messages postés 266 Statut Membre 80
     
    LOL, la macro max...

    resultat = max(a, b);

    mais attention, c'est une macro dont elle passe dans le préprocesseur... donc

    max(a++, b) donne en réalité
    ((a++) < (b) ? (b) : (a++))
    ce qui est invalide puisque la variable va être incrémenté 2 fois...
    -1
  2. Elwish Messages postés 40 Statut Membre 3
     
    Inutile les macros ici.

    J'ai juste demander si quelqu'un est capable de transorformer la conditions ci dessus en 1 ligne. Pas d'incrémentation supplémentaire ...
    -1
  3. cedric1989 Messages postés 298 Statut Membre 37
     
    max = a*(a>b) + b*(b>a)
    Ce serait pas ça par hasard ?
    -1
  4. Mahmah Messages postés 497 Statut Membre 125
     
    Hello,

    Moi je sais :

    if (a > b) max = a; else max = b;

    Tadaaaaa ! :D

    Sinon la macro max ou dans un esprit c++ et standard, la fonction template de la STL:

    #include <algotithm>
    
    int max = ::std::max< int >( a, b );
    
    // ou juste
    
    int max = ::std::max( a, b );
    


    M.
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Elwish Messages postés 40 Statut Membre 3
     
    Tiens bonne idée, moi je fais :

    max = a > b ? a : b ;
    -1