Programme C++ , erreur ? Ou ça ? - C++ - Programmation
Marsh Posté le 12-10-2012 à 00:26:31
Bonsoir !
L'erreur est très simple : Il manque le " << endl" à la ligne 22.
En effet, le saut de ligne provoque le "flush" de la sortie standard et l'affichage effectif de ce qui a été demandé, sinon, tout est gardé en mémoire en attendant le prochain saut de ligne.
En fin de programme, le comportement dépend de l'OS : Sous Linux, la dernière ligne aurait été affichée juste avant le "prompt" (ce qui aurait été équivalent à l'affichage "La moyenne est de : 3.3333 C:\C++\TP2>" ), tandis que sous Windows il semble que le contenu de ce qui n'a pas encore été affiché soit perdu.
Bonne continuation en C++ !
Marsh Posté le 12-10-2012 à 00:53:44
Salut
Je viens de rajouter << endl;
La moyenne ne s'affiche toujours pas .
Marsh Posté le 12-10-2012 à 08:04:12
Bonjour !
C'est très étrange ...
Pouvez-vous copier / coller votre code (même si la copie d'écran est , a priori, très parlante ...) ?
(Ceci serait plus simple pour faire des essais sur nos machines
Marsh Posté le 12-10-2012 à 10:01:12
Salut ,
le voici :
Code :
|
Marsh Posté le 12-10-2012 à 10:38:41
Attention aux floats et aux comparaisons tout de même.
Les note, accumulateur et nombre devraient être des entiers. Moyenne (et son calcul lui-même) sont bien en float.
Cela dit, j'ai du mal à croire que l'ajout du endl ne résolve pas l'affichage de moyenne ...
Edit : D'ailleurs ... J'obtiens ca avec le code collé en dernier.
$ ./a.exe |
Marsh Posté le 12-10-2012 à 10:44:11
C'est bon ça s'est arrangé
Merci encore !
Edit :: diviser un entier par un autre entier conduit à calculer le quotient entier de la division euclidienne. Si on veut calculer une division réelle, il suffit que'un des arguments ( accumulateur par exemple ) soit un réel . Si l'accumulateur est un réel, je pense signale qu'il serait logique que la variable note le soit aussi.
Marsh Posté le 12-10-2012 à 11:49:22
Bloupies a écrit : C'est bon ça s'est arrangé |
tu as bien retenu ton cours, mais ton raisonnement est erroné ici. Tu peux très bien conserver tes variables entières et faire :
Code :
|
Ce qui revient exactement à ce que tu veux.
Marsh Posté le 12-10-2012 à 18:07:45
ReplyMarsh Posté le 15-10-2012 à 16:07:55
Joel F a écrit : c'est pas grepable |
mbof ... greper un static_cast<float> ou un float(, ca ne change pas vraiment la donne. Ca ressemble plus à une question de convention.
Marsh Posté le 16-10-2012 à 08:41:21
float(int,int) est un truc valide qui n'a pas de rapport avec un cast
Marsh Posté le 16-10-2012 à 10:53:28
Bah dans ce cas, profites-en pour éclairer ma lanterne, parce que je ne vois pas ce que ca veut dire et le compilo que j'ai sous le coude n'en veut pas
Edit : mes deux compilos n'en veulent pas :
Code :
|
Code :
|
Marsh Posté le 17-10-2012 à 20:51:40
float(int,int) est un type fonction prenant 2 int et renvoyant un float.
la subtilité est bien type fonction, pas pointeur de fonction. C'ets le seul type utilisabel en C++ sans qu'on puisse en faire une instance. Ca sert dans des astuces de metaprogrammation pour passer un unique type composite à des classes templates. L'exemple d'applciation classique est std::result_of
typedef std::result_of< float(int,int)>::type type;
Marsh Posté le 18-10-2012 à 18:34:03
Voilà, j'avais donc raison et maintenant je sais pourquoi
Marsh Posté le 11-10-2012 à 23:33:03
Bonsoir
Je suis en train de faire un programme , demandant à l'utilisateur de rentrer des valeurs ( notes ) . On les additionne au fut et a mesure ( accumulateur ) , et calcule leur nombre au fur et à mesure .
J'ai bien réussi pour l'instant
Cependant , maintenant , on me demande de calculer la moyenne au final , qui pourant parait très facile , mais lorsque je le compile , il ne veut pas l'afficher..
Voici un lien :
Ps :Afficher des notes différents de -1 , et lorsque l'utilisateur tape -1 , tout doit être afficher ( nombre , somme , moyenne )
Merci beaucoup d'avance ( Ps2 : Je suis un peu fatigué , donc cela pourrait être une erreur d’inattention , je ne vois vraiment pas pourquoi cela n'affiche même pas au moins " La moyenne est .." )