2 programmes-2 versions

Moustiquet Messages postés 254 Statut Membre -  
Moustiquet Messages postés 254 Statut Membre -
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 254 Statut Membre
 
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 254 Statut Membre
 
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 254 Statut Membre
 
J'en reviens pas!
0