2 programmes-2 versions

Fermé
Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011 - 19 mars 2010 à 02:02
Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011 - 21 mars 2010 à 01:39
Le premier ne fonctionne pas fonctionneProgramme dans lequelle, il faut demnander a l'utilisateur d'entrer 8 notes*/
/*de 8 juges. Ces notes sont donneées a un patineur. Il faudra donner la moyenne du patineur*/
/*Avant de donner la moyenne du patineur, il faut retirer la plus haute note et la plus faible (une seule fois)*/
/*Après, il faut pouvoir refaire l'opération pour autant de patineur qu'on le désir.*/
/*De ces patineurs, il faut calculer la moyenne des patineur et de determiner le meilleur et le /*
/*Plus mauvais.
/*

#include <stdio.h> 


#define NB_NOTES 8 /* Nombre de notes à traiter. */ 
#define NOTE_MIN 0 /* Note minimale. */ 
#define NOTE_MAX 10 /* Note maximale. */
#define NB_MOY  100
#define VALEUR_DEPART 0 

int main() 
/*Declaration des variable*/
{    float tab_Moyenne[NB_MOY];/*Tableau des moyennes des patineurs*/
     float tab_notes [NB_NOTES]; /*Tableau des notes des juges*/
     float NotePlusBasse=10; 
     float NotePlusHaute=0; 
     float notes;
     int k;/*Pour compteur dans la boucle des moyenne*/
     char reponse;/*Pour la boucle de chaque patineur*/ 
     int nbPat,i;/* nombre de patineur traité(s).*/ 
     float somme;/*somme des notes des juges pour un patineur.*/ 
     float  Moyenne,SomMoyenne,MoyPlus,MoyFaible; 
     nbPat=0; /*initialisation du compteur des patineurs*/
     int non_valide; /* Utilisee comme un booleen. */ 

/* Initialisation du tableau. */ 

do{     printf( "Lecture de %d du juge\n\n\n", NB_NOTES ); 
 
      for ( i = 0; i < NB_NOTES; i++ ) { 

      /*Boucle do while pour calculer et mettre les valeurs dans un tableau des juges*/

          do{ printf( "Entrez la note du juge #%d : ", i + 1 ); 
              fflush( stdin ); 
              scanf( "%f", &tab_notes[ i ] ); 
              non_valide = tab_notes[ i ] < NOTE_MIN || tab_notes[ i ] > NOTE_MAX; 
                if ( non_valide )
                printf( "Erreur, note invalide\n\n" ); 
                
              } while ( non_valide ); 
            } /* Fin de la boucle for*/

                

          /*Calcul de la somme*/ 
          
            
            somme=0; 
            for(i=0;i<NB_NOTES;i++) 
            {
            somme+=tab_notes[i]; 
            
            fflush(stdin); 
            if(tab_notes[i]>NotePlusHaute) 
            NotePlusHaute=tab_notes[i]; 
            if (tab_notes[i]<NotePlusBasse) 
            NotePlusBasse= tab_notes[i];} 
            
           /*Determine les sommes les plus haute et plus faible pour calculer la moyenne*/
           somme-=NotePlusHaute; 
           somme-=NotePlusBasse;
            
           /*Comptage des patineurs*/
           fflush(stdin); 
           nbPat++;
           printf("Nous avons traite %d patineurs\n\n",nbPat);
        
      

            
        
          
          //Affichage des résultats

          printf("    La note moyenne du patineur : %6.2f \n", somme/6.0 ); 
         

            printf("\n\n"); 

         printf("\nVoulez-vous continuer ? (o/n) "); 
         fflush(stdin); 
         reponse = toupper ( getchar() );
         } while(reponse== 'O'||reponse=='o');
         
        /* printf("Merci!, Appuyer sur une touche pour continuer");*/
  /* Ininialisation du tableau des moyennes*/
    
          SomMoyenne= 0;
                    
     do {    if ( tab_Moyenne[k]=SomMoyenne/nbPat);
           for(i=0;k<NB_MOY;k++){
           SomMoyenne+=tab_Moyenne[k] ;        
           if (tab_Moyenne[k]<MoyFaible)
               MoyFaible=tab_Moyenne[k];
           if (tab_Moyenne[k]>MoyPlus)
               MoyPlus=tab_Moyenne[k];}
       while (tolower(reponse) == 'n');
          printf("La note moyenne des patineurs est:%6.2f\n",SomMoyenne/nbPat);
          printf("Le meilleur patineur a la note: %6.2f\n",MoyPlus);
          printf("Le plus mauvais patineur a la note:%6.2d\n",MoyFaible);
          
           getch();
         }
          
         return 0;
}
   
     

Le 2 ieme fonctionne
ce programme permet de saisir les 8 notes d'un patineur
   avec une boucle appropriée, de calculer et afficher sa note finale. 

   méthode de calcul utilisée: 8 juges accordent une note réelle entre 0 et 6.
   la note la plus élevée et la note la plus basse sont éliminées
   et la moyenne des 6 notes conservées est alors affichée
   
  le programme peut faire le calcul ci-dessus pour plusieurs patineurs,
   compter le nombre de patineurs traités et afficher la note moyenne
   de tous les patineurs ainsi que la meilleure moyenne et la moyenne la plus 
   faible.
*/
#include <stdio.h>

#define NB_PATINEURS_MAX  100
#define NOTE_MIN  0.0
#define NOTE_MAX  6.0
#define NB_NOTES 8

/*  demanderNote permet de saisir et de valider la note d'un patineur
    (entre NOTE_MIN et NOTE_MAX)
    en entrée: aucun parametre
    en sortie: retourne la note (de type float)
*/
float demanderNote()
{
   float note;
    
   do 
   {
      printf("Veuillez entrer la note: ");
      scanf("%f", &note);
      
      if (note < NOTE_MIN || note > NOTE_MAX)
         printf("Note invalide. Veuillez entrer la note: ");
   
   } while (note < NOTE_MIN || note > NOTE_MAX);

   return note;
}

int main()
{
   float sommeNoteGlobal = 0;
   float noteMinGlobal   = NOTE_MAX + 1;
   float noteMaxGlobal   = NOTE_MIN - 1;
   int nbPatineurs       = 0;
   float note;
   char reponse;
   int i;

   do
   {
      
      printf("Patineur %d\n", nbPatineurs + 1);
   
      float sommeNotesPatineur = 0;
      float noteMin = NOTE_MAX + 1;
      float noteMax = NOTE_MIN - 1;

      for (i = 0; i < NB_NOTES; i++)
      {
         note = demanderNote();

         sommeNotesPatineur += note;

         if (note < noteMin)
            noteMin = note;

         if (note > noteMax)
            noteMax = note;
      }

      note = (sommeNotesPatineur - noteMin - noteMax) / 6.0;
      sommeNoteGlobal += note;

      if (note < noteMinGlobal)
         noteMinGlobal = note;

      if (note > noteMaxGlobal)
         noteMaxGlobal = note;

      nbPatineurs++;

      printf("Note: %.1f\n", note);

      printf( "\nDesirez-vous entrer un autre patineur (o/n)? " );
      scanf( " %c", &reponse );
   }
   while (tolower(reponse) == 'o');

   printf("\n** RESUME **\n");
   printf("Nombre de patineurs: %d\n", nbPatineurs);
   printf("Moyenne            : %.1f\n", sommeNoteGlobal / nbPatineurs);
   printf("Note la plus faible      : %.1f\n", noteMinGlobal);
   printf("Meilleure note           : %.1f\n", noteMaxGlobal);
   
   getch();
}

Mais j'ignore pourquoi le premier ne fonctionne pas
Si quelqu'un veux s'aventurer a me repondre se serait apprécié
Le probleme est dans la partie souligné
A voir également:

3 réponses

Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011
19 mars 2010 à 04:30
S.V.P J'ai été absent pendant un bon bout de temps, mais je pense avoir fait du progrès, mais pas parfait
0
Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011
19 mars 2010 à 15:25
J'ai comme le sentiment que les gens se souvinnent et on du ressentiement et cela je trouve cela triste. Ce n'est finalement qu'un site internet?
0
Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011
21 mars 2010 à 01:39
J'en reviens pas!
0