Bonsoir,
Envoyé par
Maghin
le C/C++ c'est fabuleux !
Ah non ! C'est le C++ qui est fabuleux. Le « C/C++ », mélange des deux langages, est une abomination !
Envoyé par
Maghin
Ton erreur se trouve là ou tu effectues ton calcul :
double const resultat((a * b) + c);
Je ne sais pas vraiment ce que le compilateur comprend dans cette situation (j'en suis curieux si quelqu'un saurait dire).
Non l'« erreur » n'est pas là, il s'agit d'une simple construction d'un double tel qu'on a classiquement Type obj(/*paramètres du constructeur*/); (accolades depuis C++11).
Le soucis se situe au niveau de l'affichage, et de son interprétation, en particulier sur la partie
<< c << resultat <<
. En effet aucun espace n'est inséré entre la valeur de c et celle de resultat, ce qui fait que :
Exemple : ((3 * 6) + 2) : a=3, b=6, c=2, resultat=20 affiche « 3 * 6 + 220 »
Exemple 2 : ((4 * 2) + 6) : a=4, b=2, c=6, resultat=12 (plutôt 14 en fait) affiche « 4 * 2 + 614 »
Ajoute simplement un séparateur (espace, signe égal ou autre) afin de pouvoir différencier les deux.
Partager