[Mini Sondage C++] Condition courte

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. 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
    1. 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
      1. max = a*(a>b) + b*(b>a)
        Ce serait pas ça par hasard ?
        -1
        1. 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
          1. Tiens bonne idée, moi je fais :

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