Rechercher : dans
Par :

Petit prob. en C

Dernière réponse le 9 nov 2009 à 23:14:15 Moustiquet, le 9 nov 2009 à 12:13:16 
 Signaler ce message aux modérateurs

Bonjour,

////////////////////////////////////////////////////////////­////////////////////            
//Programme qui prends les notes de 8 juges pour un patineur                   /
//On élimine la plus faible et la plus forte note                              /
//On calcule la moyenne et on recommence pour un autre patineur autant de fois /
//qu'on le désir. Après il faut pouvoir compter le nombre de patineur          /
//Determiner le meilleur et le plus mauvais patineur.                          /
//Programme de C 17/11/09             /                    
////////////////////////////////////////////////////////////­////////////////////

////////////////////////////////////////////////////////////­////////////////////            
//Programme qui prends les notes de 8 juges pour un patineur                   /
//On élimine la plus faible et la plus forte note                              /
//On calcule la moyenne et on recommence pour un autre patineur autant de fois /
//qu'on le désir. Après il faut pouvoir compter le nombre de patineur          /
//Determiner le meilleur et le plus mauvais patineur.                          /
//Programme de Claude Bisson BISC05036104 pour M. Pierre Trochu pour le 17/11/09             /                    
////////////////////////////////////////////////////////////­////////////////////

#include <stdio.h>

#define FAUX  0      /*  Constante booléenne FAUX en C.  */
#define VRAI  !FAUX  /*  Constante booléenne VRAI en C.  */

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

int main()
{     
      float Moyenne,SomMoyenne,MoyPlus,MoyFaible;
      float  tab_notes [NB_NOTES];
      float NotePlusBasse=10;
      float NotePlusHaute=0; 
      char reponse;
      int nbPat,i;// nombre de patineur traité(s)et i pour la bouble for.
      float somme;//somme des notes des juges pour un patineur.
      nbPat=0;
      int non_valide;  /*  Utilisee comme un booleen.  */

   /*  Initialisation du tableau.  */

   printf( "Lecture de %d du juge\n\n\n", NB_NOTES );

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

       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 );          
   
}
   /*  Afficher le tableau.  */
   



   /*for ( i = 0; i < NB_NOTES; ++i ) {
      printf( "note du juge #%d : %6.2f\n", i + 1, tab_notes[ i ] );

  /*Calcul de la somme*/
  
         somme=0;
         for(i=0;i<NB_NOTES;i++)
         somme+=tab_notes[i];
         
      /*if (notes[i]>NotePlusHaute)
              NotePlusHaute=notes[i];
          if (notes[i]<NotePlusBasse)
              NotePlusBasse= notes[i]              somme-=NotePlusHaute;
              somme-=NotePlusBasse;
              
  
  

          printf("La note moyenne est       : %6.2f \n", somme/6.0 );
         /*printf("La note la plus grande : %6.2f \n", NotePlusHaute);
          printf("La notela plus petite : %6.2f \n", NotePlusBasse);*/

          printf("\n\n");
   
          printf("\nVoulez-vous continuer ? (o/n) ");
          fflush(stdin);
          /*reponse = toupper ( getchar() );

          /*while (reponse == 'O');
          if (reponse=='O');*/
            nbPat++;
            printf("On a traite %d patineurs\n", nbPat);
            while (reponse == 'O');
            if (reponse=='O');
         getch();
         
   

return 0;
}




     

  
    
 


#include <stdio.h>

#define FAUX  0      /*  Constante booléenne FAUX en C.  */
#define VRAI  !FAUX  /*  Constante booléenne VRAI en C.  */

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

int main()
{     
      float Moyenne,SomMoyenne,MoyPlus,MoyFaible;
      float  tab_notes [NB_NOTES];
      float NotePlusBasse=10;
      float NotePlusHaute=0; 
      char reponse;
      int nbPat,i;// nombre de patineur traité(s)et i pour la bouble for.
      float somme;//somme des notes des juges pour un patineur.
      nbPat=0;
      int non_valide;  /*  Utilisee comme un booleen.  */

   /*  Initialisation du tableau.  */

   printf( "Lecture de %d du juge\n\n\n", NB_NOTES );

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

       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 );          
   
}
   /*  Afficher le tableau.  */
   



   /*for ( i = 0; i < NB_NOTES; ++i ) {
      printf( "note du juge #%d : %6.2f\n", i + 1, tab_notes[ i ] );

  /*Calcul de la somme*/
  
         somme=0;
         for(i=0;i<NB_NOTES;i++)
         somme+=tab_notes[i];
         
       /*if (notes[i]>NotePlusHaute)
              NotePlusHaute=notes[i];
          if (notes[i]<NotePlusBasse)
              NotePlusBasse= notes[i];*/
              somme-=NotePlusHaute;
              somme-=NotePlusBasse;
              
  
  

          printf("La note moyenne est       : %6.2f \n", somme/6.0 );
         /*printf("La note la plus grande : %6.2f \n", NotePlusHaute);
          printf("La notela plus petite : %6.2f \n", NotePlusBasse);*/

          printf("\n\n");
   
          printf("\nVoulez-vous continuer ? (o/n) ");
          fflush(stdin);
          /*reponse = toupper ( getchar() );

          /*while (reponse == 'O');
          if (reponse=='O');*/
            nbPat++;
            printf("On a traite %d patineurs\n", nbPat);
            while (reponse == 'O');
            if (reponse=='O');
         getch();
         
   

return 0;
}




     

  
    
 

Le texte souligné devrait fonctionner,mais lorsque j'enlève le/* et*/ on me renvoit un message du compilateur
nor array nor pointor pour les 4lignes
En plus si vous regarder les accolade, elle me semble pas a la bonne place pour que mon programme recommenc e avec une reponse oui, mais c'est la seul facon qu'il fonctionne. Si quelqu'un a une idée Merci.J'aimerais bien solutionner ce problème pour pouvoir continuer ce programme et finalement le finir en ajoutant une boucle pour traiter plusieurs patineurs Merci
Configuration: SustemeMicosoft Windows version 5.1.2600 Srevive 2 Processeurx86 Family 15 modele4 BiosPhoenix Tech memoire physique totale 512

Meilleures réponses pour « Petit prob. en C » dans :
Langage C++ - Les types de données Voir Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les opérateurs Voir Qu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
3D Secure / Verified by Visa / SecureCode: Qu'est-ce que c'est ? VoirDepuis octobre 2008, les banques et commerçants en ligne ont commencé à adopter le système 3DSecure pour les paiements sur Internet. Qu'est-ce que c'est ? 3DSecure est appelé "Verified by Visa" chez Visa, et "SecureCode" chez Mastercard. (Les logos...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

Moustiquet, le 9 nov 2009 à 12:22:51

Merde massage dedoublé

Répondre à Moustiquet

2

zavenger, le 9 nov 2009 à 12:25:13

Bonjour,

ta variable

notes
s'appelle maintenant
tab_notes
...

Si tu veux boucler su un nombre de patineur, il faut que tu fasses ... une boucle. O tu ne fais rien avec ta variable
reponse

Répondre à zavenger

3

Moustiquet, le 9 nov 2009 à 17:31:56

Salut
Maintenant ca fontionne, mais je sais pas pourquoi dans ma tête a moi j'avais le saentiment que j'avais essayé cette solution, mais peut-être que j'avais determiner une autre variable notes et cela causait "un conflit".
En tout cas je te remercie!!

Répondre à Moustiquet

4

Pacorabanix, le 9 nov 2009 à 22:32:30

C'est tout à fait normal, le gros problème dans la programmation c'est en partie de se souvenir de ce qu'on fait :P .

D'ailleurs, et désolé de t'ennuyer encore avec ça, mais un des but d'écrire clairement son programme. Ici, tu as mis une indentation, mais elle pas très utile, car tu fais tes espacements un peu n'importe comment.

Il faut que ce soit trs rigide, comme ça tu auras plus de "temps de cerveau" disponible pour mieux voir tes variables plutot que de te concentrer sur savoir où tu en es.

Pour être plus précis : donne-toi un nombre d'espacement à chaque indentation (par exemple 2 ou 3) et respecte-le.

N'indente (=mettre des espaces devant) que si tu commences un nouveau bloc avec {. Ne réduis tes indentations que lorsque tu fermes un bloc avec }.

Normalement si tu utilise un éditeur de code quelqu'il soit, il doit y avoir une commande "Indenter" ou "ajouter une indentation". Apprends le raccourci par coeur ;).

Répondre à Pacorabanix

5

 fiddy, le 9 nov 2009 à 23:14:15

En C, il ne faut pas mettre "fflush(stdin);" ça marche pas ;-))).
Sinon, tu n'as pas besoin de t'embêter à redéfinir FAUX etc. Le type booléen existe en C iso 99. Et si tu me dis que t'es en C ansi, je te répondrai que dans ce cas tu n'as pas le droit d'utiliser les commentaires // ;-))).

Et un dernier conseil, oublie les float. Dans la plupart des cas, le double est conseillé (à part pour le système embarqué où l'espace est critique).

Cdlt
Google is your friend

Répondre à fiddy