simple question de type de variable

simple question de type de variable - C - Programmation

Marsh Posté le 21-09-2008 à 13:07:37    

Bonjour
 Je viens de débuter en C. En je rentre des valeurs entieres en boucle jusqu'à une valeur négative, jusque là ok.
J'aimerai en afficher la moyenne donc j'ai mis un compteur de note entrées.
 
 J'ai dont somme (type int) = la somme des notes
             c (type int)        = le nombre de notes
 
 j'ai fait moy=somme/c   (moy type float car je veux la valeur sous forme réelle)
 
 mais quand j'affiche moy il ne m'indique rien. Ai-je mal déclaré quelque chose?
 
 
 merci

Reply

Marsh Posté le 21-09-2008 à 13:07:37   

Reply

Marsh Posté le 21-09-2008 à 13:24:54    

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5. int note, note2=0, c=0;
  6. float moy=0;
  7. printf("Entrez une note : " );
  8. scanf("%d", &note);
  9. if(note<0)
  10. {
  11. printf("Pas de note \n" );
  12. system("pause" );
  13. }
  14. else
  15. {
  16. do
  17. {
  18. note=note+note2;
  19. c=c+1;
  20. printf("Entrez une note : " );
  21. scanf("%d", &note2);
  22. }
  23. while(note2>0);
  24. moy=note/c;
  25. printf("La somme est %d \n", note);
  26. printf("On divise %d par %d ce qui donne %d \n", note,c, moy); //  ce qui donne 0...
  27. system("pause" );
  28. }
  29. }

Reply

Marsh Posté le 21-09-2008 à 13:27:57    

%f pour afficher un flottant
et moy = note/(float(c)) sinon tu fait une division entière

Reply

Marsh Posté le 21-09-2008 à 13:34:23    

ah ok cool merci mais c est toujours entier..


Message édité par GoldenBall le 21-09-2008 à 13:34:52
Reply

Marsh Posté le 21-09-2008 à 13:45:17    

Bon merci voila le nouveau code  

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. void main()
  4. {
  5. int note, note2=0;
  6. float moy, c=0;
  7. printf("Entrez une note : " );
  8. scanf("%d", &note);
  9.             if(note<0)
  10.             {
  11.             printf("Pas de note \n" );
  12.             system("pause" );
  13.             }
  14.             else
  15.             {
  16.                 do
  17.                 {
  18.                 note=note+note2;
  19.                 c=c+1;
  20.                 printf("Entrez une note : " );
  21.                 scanf("%d", &note2);
  22.                 }
  23.                 while(note2>0);
  24.             moy=note/c;
  25.             printf("La somme est %d \n", note);
  26.             printf("On divise %d par %f ce qui donne %f \n", note,c, moy);
  27.             system("pause" );
  28.             }
  29. }


 
il y t'il un moyen d'éviter de faire la première fois note=note+note2 (car la premiere fois note 2=0)
 le rajout d'un if(note2!=0) n'est-il pas un peu lourd?

Reply

Marsh Posté le 21-09-2008 à 13:55:01    

1-le nombre de notes (c) est forcément un entier, non ?
2-Les notes (note et note2) peuvent être des flottants, non ?
 
Ce qui donne :

Code :
  1. float note, moy, note2 = 0;
  2. int c = 0;


 
Autre chose : l'utilité de deux variables note et note2 ?

Reply

Marsh Posté le 21-09-2008 à 14:08:28    

il faut faire la somme pendant la boucle de toutes les notes rentrées.. il faut bien deux variables non ?

Reply

Marsh Posté le 21-09-2008 à 14:16:42    

pas con :/
T'as changé ce que je t'ai dit ? (float et int)

Reply

Marsh Posté le 21-09-2008 à 14:57:57    

oui oui parfait merci mais pour la somme inutile dont je parlais ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed