[Mini Sondage C++] Condition courte

Fermé
Elwish Messages postés 40 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 26 août 2008 - 15 août 2008 à 19:33
Elwish Messages postés 40 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 26 août 2008 - 16 août 2008 à 18:44
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;
A voir également:

5 réponses

D-Predator Messages postés 257 Date d'inscription dimanche 3 août 2008 Statut Membre Dernière intervention 25 janvier 2009 80
16 août 2008 à 06:45
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
Elwish Messages postés 40 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 26 août 2008 3
16 août 2008 à 09:13
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
cedric1989 Messages postés 257 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 25 octobre 2012 37
16 août 2008 à 11:26
max = a*(a>b) + b*(b>a)
Ce serait pas ça par hasard ?
-1
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
16 août 2008 à 18:01
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Elwish Messages postés 40 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 26 août 2008 3
16 août 2008 à 18:44
Tiens bonne idée, moi je fais :


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