J'ai quand même fait du progrès en C
Résolu/Fermé
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
-
6 nov. 2009 à 01:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 nov. 2009 à 22:06
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 nov. 2009 à 22:06
A voir également:
- J'ai quand même fait du progrès en C
- Télécharger le progrès gratuit - Télécharger - Médias et Actualité
- Réparation iPhone : Apple a encore des progrès à faire - Accueil - Téléphones
- Test Google Pixel Watch 2 : des progrès, mais peut mieux faire - Accueil - Montres
10 réponses
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
6 nov. 2009 à 13:57
6 nov. 2009 à 13:57
Bonjour,
2 ou 3 trucs a corriger:
...
float tab_notes [NB_NOTES];
...
scanf( "%f", &tab_notes[ i ] );
...
somme=0;
NotePlusBasse=10;
NotePlusHaute=0;
for(i=0;i<NB_NOTES;i++)
somme+=tab_notes[i];
fflush(stdin);
if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (notes[i]<NotePlusBasse)
NotePlusBasse= notes[i]
somme-=NotePlusHaute
somme-=NotePlusBasse
...
2 ou 3 trucs a corriger:
...
float tab_notes [NB_NOTES];
...
scanf( "%f", &tab_notes[ i ] );
...
somme=0;
NotePlusBasse=10;
NotePlusHaute=0;
for(i=0;i<NB_NOTES;i++)
somme+=tab_notes[i];
fflush(stdin);
if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (notes[i]<NotePlusBasse)
NotePlusBasse= notes[i]
somme-=NotePlusHaute
somme-=NotePlusBasse
...
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
6 nov. 2009 à 08:22
6 nov. 2009 à 08:22
Salut.
déjà ta moyenne c'est n'importe quoi, et tu as de la chance de ne pas avoir une erreur de segmentation.
Pour l'affichage, c'est normal, tu lui demande d'afficher des float et tu lui fourni de entier.
somme/6 donne un entier il me semble, car "6" est un entier. Pour avoir un réel il faut faire "somme/6.0"
Que signifie NOTE_MIN et NOTE_MAX, les notes extrémales mises ou possibles ? Dans un cas c'est bon dans l'autre c'est n'importe quoi.
déjà ta moyenne c'est n'importe quoi, et tu as de la chance de ne pas avoir une erreur de segmentation.
Pour l'affichage, c'est normal, tu lui demande d'afficher des float et tu lui fourni de entier.
somme/6 donne un entier il me semble, car "6" est un entier. Pour avoir un réel il faut faire "somme/6.0"
Que signifie NOTE_MIN et NOTE_MAX, les notes extrémales mises ou possibles ? Dans un cas c'est bon dans l'autre c'est n'importe quoi.
blackdam
Messages postés
327
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
13 février 2015
35
6 nov. 2009 à 08:26
6 nov. 2009 à 08:26
Bonjour,
ton problème c'est qu'a aucun moment tu calcules ta note min ou ta note max...
il existe plusieurs moyens de calculer un nombre min et un nombre max dans une liste, google est ton ami :)
Par exemple la fonction min() ou max() avec un #define(math.h) si je me souviens bien qui va sortir le minimum ou le maximum entre 2 nombres...
ou alors cherche "tri par selection en C" sur google, tu trouveras des moyens de trier ta liste, il ne te restera plus qu'a afficher le 1er et le dernier nombre de ta liste.
ton problème c'est qu'a aucun moment tu calcules ta note min ou ta note max...
il existe plusieurs moyens de calculer un nombre min et un nombre max dans une liste, google est ton ami :)
Par exemple la fonction min() ou max() avec un #define(math.h) si je me souviens bien qui va sortir le minimum ou le maximum entre 2 nombres...
ou alors cherche "tri par selection en C" sur google, tu trouveras des moyens de trier ta liste, il ne te restera plus qu'a afficher le 1er et le dernier nombre de ta liste.
cycloop
Messages postés
69
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
8 avril 2013
17
6 nov. 2009 à 10:01
6 nov. 2009 à 10:01
Bonjour,
Voici une erreur qui pourrait expliquer certains problèmes : tab_notes est un tableau d'int dans lequel tu mets des float (2.6 n'es pas un int ;) )
voilà une bonne piste :
je mets la note min au max pour être sûr que les notes de juge soit inf; de même pr la note max.
Voici une erreur qui pourrait expliquer certains problèmes : tab_notes est un tableau d'int dans lequel tu mets des float (2.6 n'es pas un int ;) )
voilà une bonne piste :
int i , note_juge_min = NOTE_MAX , note_juge_max = NOTE_MIN; float tab_notes[8]; float moyenne; [... remplissage tableau ...] for(i=0;i<8:i++) { moyenne+=tab[i]; if (tab_notes[i]<note_juge_min) note_juge_min = tab_notes[i]; if (tab_notes[i]>note_juge_max) note_juge_max = tab_notes[i]; } moyenne=moyenne/8;
je mets la note min au max pour être sûr que les notes de juge soit inf; de même pr la note max.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
6 nov. 2009 à 13:33
6 nov. 2009 à 13:33
//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 par C.
#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. */
main()
{
float moyenne,SomMoyenne,moyPlus,moyFaible;
float tab_notes [notes];
float NotePlusBasse=10;
float NotePlusHaute=0;
float notes;
char reponse;
int nbPat,i;
float somme;
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( "%d", &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<NOTE_MAX;i++)
somme+=tab_notes[i];
fflush(stdin);
if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (notes[i]<NotePlusBasse)
NotePlusBasse= notes[i]*/
printf("La note moyenne : %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();
}
/* Lecture de 8 du juge
Entrez la note du juge #1 : 2.6
Entrez la note du juge #2 : 2.5
Entrez la note du juge #3 : 2.6
Entrez la note du juge #4 : 2.6
Entrez la note du juge #5 : 2.8
Entrez la note du juge #6 : 2.9
Entrez la note du juge #7 : 2.4
Entrez la note du juge #8 : 2.5
La note moyenne : 1300519146211295500000000000000000.00
La note la plus grande : 0.00
La notela plus petite : 10.00
Voulez-vous continuer ? (o/n) On a traite 1 patineurs*/
J'ai mis cela/* somme=0;
for(i=0;i<NOTE_MAX;i++)
somme+=tab_notes[i];
fflush(stdin);
if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (notes[i]<NotePlusBasse)
NotePlusBasse= notes[i]*/,car j'avais des problème de compilation.
MON PROBLEME MAJEUR EST QUE LORSQUE JE FAIT APPELER UNE NOTE PAR EX [2], j'obtiens 0.0. comme si les note que j'avais enregister au debut du programme n'avaient pas été saisie dans les 8 case sdu tableau
MERCI!
//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 par C.
#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. */
main()
{
float moyenne,SomMoyenne,moyPlus,moyFaible;
float tab_notes [notes];
float NotePlusBasse=10;
float NotePlusHaute=0;
float notes;
char reponse;
int nbPat,i;
float somme;
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( "%d", &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<NOTE_MAX;i++)
somme+=tab_notes[i];
fflush(stdin);
if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (notes[i]<NotePlusBasse)
NotePlusBasse= notes[i]*/
printf("La note moyenne : %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();
}
/* Lecture de 8 du juge
Entrez la note du juge #1 : 2.6
Entrez la note du juge #2 : 2.5
Entrez la note du juge #3 : 2.6
Entrez la note du juge #4 : 2.6
Entrez la note du juge #5 : 2.8
Entrez la note du juge #6 : 2.9
Entrez la note du juge #7 : 2.4
Entrez la note du juge #8 : 2.5
La note moyenne : 1300519146211295500000000000000000.00
La note la plus grande : 0.00
La notela plus petite : 10.00
Voulez-vous continuer ? (o/n) On a traite 1 patineurs*/
J'ai mis cela/* somme=0;
for(i=0;i<NOTE_MAX;i++)
somme+=tab_notes[i];
fflush(stdin);
if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (notes[i]<NotePlusBasse)
NotePlusBasse= notes[i]*/,car j'avais des problème de compilation.
MON PROBLEME MAJEUR EST QUE LORSQUE JE FAIT APPELER UNE NOTE PAR EX [2], j'obtiens 0.0. comme si les note que j'avais enregister au debut du programme n'avaient pas été saisie dans les 8 case sdu tableau
MERCI!
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
8 nov. 2009 à 12:52
8 nov. 2009 à 12:52
////////////////////////////////////////////////////////////////////////////////
//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 par C /
////////////////////////////////////////////////////////////////////////////////
#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;
float notes;
char reponse;
int nbPat,i;// nombre de patineur traité(s).
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];
fflush(stdin);
/*if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (Notes[i]<NotePlusBasse)
NotePlusBasse= notes[i];
somme-=NotePlusHaute;
somme-=NotePlusBasse;
fflush(stdin);*/
printf("La note moyenne est : %6.2f \n", somme/8.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;
}
F:\NUMERO_C_01.c In function `main':
65 F:\NUMERO_C_01.c subscripted value is neither array nor pointer
66 F:\NUMERO_C_01.c subscripted value is neither array nor pointer 67 F:\NUMERO_C_01.c `Notes' undeclared (first use in this function)
68 F:\NUMERO_C_01.c subscripted value is neither array nor pointer
Cela apparait comme resultat si j'enlève les ces lignes, j'ai essayé plusieurs version, mais je n'y arrive pas j'ai toujours ces message du compilateur
Lecture de 8 du juge
Entrez la note du juge #1 : 4.8
Entrez la note du juge #2 : 4
Entrez la note du juge #3 : 5
Entrez la note du juge #4 : 4.6
Entrez la note du juge #5 : 4
Entrez la note du juge #6 : 4.7
Entrez la note du juge #7 : 4.8
Entrez la note du juge #8 : 4.9
La note moyenne est : 4.60
Voulez-vous continuer ? (o/n) On a traite 1 patineurs
Merci encore, j epense qu'qpres cela je seraite en mesure de complété ce programme. MERCI BEAUCOUP
//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 par C /
////////////////////////////////////////////////////////////////////////////////
#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;
float notes;
char reponse;
int nbPat,i;// nombre de patineur traité(s).
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];
fflush(stdin);
/*if (notes[i]>NotePlusHaute)
NotePlusHaute=notes[i];
if (Notes[i]<NotePlusBasse)
NotePlusBasse= notes[i];
somme-=NotePlusHaute;
somme-=NotePlusBasse;
fflush(stdin);*/
printf("La note moyenne est : %6.2f \n", somme/8.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;
}
F:\NUMERO_C_01.c In function `main':
65 F:\NUMERO_C_01.c subscripted value is neither array nor pointer
66 F:\NUMERO_C_01.c subscripted value is neither array nor pointer 67 F:\NUMERO_C_01.c `Notes' undeclared (first use in this function)
68 F:\NUMERO_C_01.c subscripted value is neither array nor pointer
Cela apparait comme resultat si j'enlève les ces lignes, j'ai essayé plusieurs version, mais je n'y arrive pas j'ai toujours ces message du compilateur
Lecture de 8 du juge
Entrez la note du juge #1 : 4.8
Entrez la note du juge #2 : 4
Entrez la note du juge #3 : 5
Entrez la note du juge #4 : 4.6
Entrez la note du juge #5 : 4
Entrez la note du juge #6 : 4.7
Entrez la note du juge #7 : 4.8
Entrez la note du juge #8 : 4.9
La note moyenne est : 4.60
Voulez-vous continuer ? (o/n) On a traite 1 patineurs
Merci encore, j epense qu'qpres cela je seraite en mesure de complété ce programme. MERCI BEAUCOUP
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
9 nov. 2009 à 02:26
9 nov. 2009 à 02:26
A vrai dire je plus préoccupé par des problème de logique, car le programme fonctionne si je place les accolades ou elles sont, mais il n'y a pas de retour de la boucle pour recommencer mon programme si quelqu'un peut me donner sont avis sur cela se serait apprécier. Peut-etre etes vous tanner de voir ce programme, mais je suis nouveau dans la programmation et je pense pas trouver une reponse mis a part ici
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
9 nov. 2009 à 03:08
9 nov. 2009 à 03:08
non non pas de problème, ce forum est comme tu le dis exactement fais pour ça. Tu présentes bien tes essais, ce n'est pas comme d'autres qui mettent juste un énoncé d'exercice qu'ils ont en cours et marquent "donné la rep svp vite vite depechez vous".
Par contre ça aiderait tout le monde à t'aider si tu mettais les balises "code" autour de ton code, comme ça ça gardera les espaces d'indentation (j'espère que tu en as mis!)et ton programme sera beaucoup plus lisible. C'est le bouton à droite de gras italique, souligné.
Par contre ça aiderait tout le monde à t'aider si tu mettais les balises "code" autour de ton code, comme ça ça gardera les espaces d'indentation (j'espère que tu en as mis!)et ton programme sera beaucoup plus lisible. C'est le bouton à droite de gras italique, souligné.
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
9 nov. 2009 à 05:39
9 nov. 2009 à 05:39
////////////////////////////////////////////////////////////////////////////////
//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 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. */</code> /* 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;
}
Pet-etre que c'est plus facile a lire comme ca
//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]; <code>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. */</code> /* 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;
}
Pet-etre que c'est plus facile a lire comme ca
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
9 nov. 2009 à 09:54
9 nov. 2009 à 09:54
non, pas plus. Les balises codes, c'est l'idéal, ça ne demande qu'un clic.
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
9 nov. 2009 à 11:29
9 nov. 2009 à 11:29
comment je clik sur balise code si je veux que le tabulation de ce texte entre quillemet soit 2 cm a droite
"cherche une reponse"
"cherche une reponse"
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
9 nov. 2009 à 11:34
9 nov. 2009 à 11:34
2 solutions :
- tu tape ton texte avec indentation, tu sélectionnes ce que tu as taper avec la souris, tu clic sur le bouton;
- Tu cliques sur le bouton, les balises apparaissent et tu tape ton texte à l'intérieur, entre <code > et </code>
- tu tape ton texte avec indentation, tu sélectionnes ce que tu as taper avec la souris, tu clic sur le bouton;
- Tu cliques sur le bouton, les balises apparaissent et tu tape ton texte à l'intérieur, entre <code > et </code>
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
9 nov. 2009 à 21:33
9 nov. 2009 à 21:33
dans ton code il faut faire des espacement pour bien voir les "niveaux d'encapsulation" des blocs.
Ex :
Avec balise code (et des espaces):
sans balise code (mais quand même avec des espaces):
#include <stdio.h>
//Ceci est mon programme
int main() {
int a, b;
char nom[35];
printf("Bienvenue!");
a=5;
b=10;
if (a<b) {
printf("a est plus grand que b");
}
else {
printf("Blabla");
if (a==b) {
return 0;
}
else {
printf("jsrjfew");
//fin du bloc if imbriqué
}
//fin du bloc if principal
}
//fin de la fonction main
}
comme cela, c'est bien plus clair pour savoir à quel if ou à quelle boucle tes accolades se réfèrent.
Le problème avec le forum ici c'est que si tu fais copier coller de ton code avec des espaces, les espaces ne sont pas affichés. En utilisant la balise code ils restent bien à l'écran. Dans mon exemple j'avais mis deux espaces pour chaque niveau d'indentation.
Ex :
Avec balise code (et des espaces):
#include <stdio.h> //Ceci est mon programme int main() { int a, b; char nom[35]; printf("Bienvenue!"); a=5; b=10; if (a<b) { printf("a est plus grand que b"); } else { printf("Blabla"); if (a==b) { return 0; } else { printf("jsrjfew"); //fin du bloc if imbriqué } //fin du bloc if principal } //fin de la fonction main }
sans balise code (mais quand même avec des espaces):
#include <stdio.h>
//Ceci est mon programme
int main() {
int a, b;
char nom[35];
printf("Bienvenue!");
a=5;
b=10;
if (a<b) {
printf("a est plus grand que b");
}
else {
printf("Blabla");
if (a==b) {
return 0;
}
else {
printf("jsrjfew");
//fin du bloc if imbriqué
}
//fin du bloc if principal
}
//fin de la fonction main
}
comme cela, c'est bien plus clair pour savoir à quel if ou à quelle boucle tes accolades se réfèrent.
Le problème avec le forum ici c'est que si tu fais copier coller de ton code avec des espaces, les espaces ne sont pas affichés. En utilisant la balise code ils restent bien à l'écran. Dans mon exemple j'avais mis deux espaces pour chaque niveau d'indentation.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
9 nov. 2009 à 22:06
9 nov. 2009 à 22:06
Je rajouterai à ton code qu'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
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