Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2715 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Transtypage forcé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transtypage forcé

n°1446922
ketch
Posté le 24-09-2006 à 22:35:31  profilanswer
 

Soit le programme suivant :
 

int main() {
 int a, somme, nb = 0;
 cout << "Veuillez saisir des nombres pour en calculer la moyenne" << endl;
 
 while (1) {
  cin >> a;
  if ( a < 0 )
   break;
  somme += a;
  nb++;
 }
 
 cout << "La moyenne est de : " << (float) somme / nb << endl;
   
}


 
Ce programme ajoute  une suite de nombre non négatif pour en calculer la moyenne.  
Si le transtypage de la division n'a pas lieu je me retrouve avec un resultat totalement à l'ouest, pourtant il s'agit d'un division entier par entier et il ne devrait pas y'avoir d'erreur.
 
Avec transtypage (float)

Veuillez saisir des nombres pour en calculer la moyenne
30 31 32 -7
La moyenne est de : 31


 
Sans transtypage (float)

Veuillez saisir des nombres pour en calculer la moyenne
30 31 32 -7
La moyenne est de : -403250242

mood
Publicité
Posté le 24-09-2006 à 22:35:31  profilanswer
 

n°1446924
fra0
Posté le 24-09-2006 à 22:52:38  profilanswer
 

initialise à somme 0 par exemple.

n°1446926
ketch
Posté le 24-09-2006 à 23:06:59  profilanswer
 

fra0 a écrit :

initialise à somme 0 par exemple.


Quel oubli ! j'ai honte... merci !
Cela dit, il est marrant de voir que le transtypage rattrape la gaffe même si le pourquoi du comment reste obscur.

n°1446929
fra0
Posté le 24-09-2006 à 23:12:27  profilanswer
 

ketch a écrit :

[...]
Cela dit, il est marrant de voir que le transtypage rattrape la gaffe même si le pourquoi du comment reste obscur.


 
ça marche, maintenant, chez toi, sur ta machine....

n°1446976
Taz
bisounours-codeur
Posté le 25-09-2006 à 09:40:07  profilanswer
 

c'est pas une histoire d'initialiser. Il faut que tu vérifies le retour de cin.
 
if (cin >> a) { OK } else { KO }

n°1447319
fra0
Posté le 25-09-2006 à 20:59:50  profilanswer
 

Taz espèce de quiche, c'est PRINCIPALEMENT un problème d'initialisation,
 
'somme' est un POD non const, non statique sa valeur de départ est indéterminée (§8.5.9).
 

n°1447324
Taz
bisounours-codeur
Posté le 25-09-2006 à 21:12:38  profilanswer
 

ouais ben y a les deux problèmes :o

n°1447333
fra0
Posté le 25-09-2006 à 21:54:41  profilanswer
 

A vrai dire, ces deux problèmes sont tout en bas de la liste des problèmes,
mais j'ai pas envie d'épiloguer.


Message édité par fra0 le 26-09-2006 à 00:54:57
n°1449207
++fab
victime du syndrome IH
Posté le 28-09-2006 à 23:12:53  profilanswer
 

fra0 a écrit :

'somme' est un POD non const, non statique sa valeur de départ est indéterminée (§8.5.9).


 
S'il n'y a pas "d'initializer".


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Transtypage forcé

 

Sujets relatifs
[ASP] retour à la ligne forcéForcé l'alignement d'une réponse d'un formulaire
Le CPC forcé...[RESOLU]Force Download gros fichier
arraylist transtypage cast object string int (help please)Variable d'induction, réduction de force
header et force download [resolu]Transtypage.
Star force 3Operateur de transtypage
Plus de sujets relatifs à : Transtypage forcé


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)