Difficulté a manipuler les tableaux
Fermé
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
-
10 nov. 2009 à 19:17
Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011 - 10 nov. 2009 à 22:18
Moustiquet Messages postés 212 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 27 juin 2011 - 10 nov. 2009 à 22:18
A voir également:
- Difficulté a manipuler les tableaux
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
- Identifier un tableau à partir d'une photo - Forum Graphisme
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
4 réponses
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
10 nov. 2009 à 21:44
10 nov. 2009 à 21:44
//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 Cl
////////////////////////////////////////////////////////////////////////////////
#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()
{ int tab_Moyenne[50];
float tab_notes [NB_NOTES];
float NotePlusBasse=10;
float NotePlusHaute=0;
float notes;
float k;
int n;
char reponse;
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;
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++ ) {
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 );
}
/*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];}
somme-=NotePlusHaute;
somme-=NotePlusBasse;
fflush(stdin);
Moyenne= somme/6.0;
nbPat++;
printf("Nous avons traite %d patineurs\n\n",nbPat);
<gras> /*Creation de la boucle des moyenne tous les patineurs*/
for (k=0;n<k;k++){
SomMoyenne+=tab_Moyenne[k];}
</gras>
//Affichage des résultats
printf(" La note moyenne du patineur : %6.2f \n", somme/6.0 );
/* printf("La note la plus grande : %6.2f \n", NotePlusHaute);
printf("La note la plus petite : %6.2f \n", NotePlusBasse);
printf("La note moyenne des patineurs est:6.2f\n",TOTAL_notes/nbPat);
printf("Le meilleur patineur a la note: 6.2f\n",patmoy[k]);
printf("Le plus mauvais patineur a la note:6.2d\n",MoyFaible)*/
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");
getch();
/* if (reponse='O');
nbPat++;
printf("Nombre de patineurs traité est %d",nbPat);*/
return 0;
}
code></code>j'ai réussus au moins a le faire souligné,,FRANCHEMENT désolé
//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 Cl
////////////////////////////////////////////////////////////////////////////////
#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()
{ int tab_Moyenne[50];
float tab_notes [NB_NOTES];
float NotePlusBasse=10;
float NotePlusHaute=0;
float notes;
float k;
int n;
char reponse;
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;
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++ ) {
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 );
}
/*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];}
somme-=NotePlusHaute;
somme-=NotePlusBasse;
fflush(stdin);
Moyenne= somme/6.0;
nbPat++;
printf("Nous avons traite %d patineurs\n\n",nbPat);
<gras> /*Creation de la boucle des moyenne tous les patineurs*/
for (k=0;n<k;k++){
SomMoyenne+=tab_Moyenne[k];}
</gras>
//Affichage des résultats
printf(" La note moyenne du patineur : %6.2f \n", somme/6.0 );
/* printf("La note la plus grande : %6.2f \n", NotePlusHaute);
printf("La note la plus petite : %6.2f \n", NotePlusBasse);
printf("La note moyenne des patineurs est:6.2f\n",TOTAL_notes/nbPat);
printf("Le meilleur patineur a la note: 6.2f\n",patmoy[k]);
printf("Le plus mauvais patineur a la note:6.2d\n",MoyFaible)*/
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");
getch();
/* if (reponse='O');
nbPat++;
printf("Nombre de patineurs traité est %d",nbPat);*/
return 0;
}
code></code>j'ai réussus au moins a le faire souligné,,FRANCHEMENT désolé
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
10 nov. 2009 à 21:54
10 nov. 2009 à 21:54
Depuis le temps que tu postes sur ce forum tu devrais savoir que pour que ton code soit lisible il faut utiliser les balise 'code' qui permettent de conserver l'indentation du code; elles sont situées à droite des balises 'souligné'.
Sur ce plan-là, pour parodier un de tes derniers posts, tu n'as pas fait de progrès ;-)))
Bonne soirée;
Sur ce plan-là, pour parodier un de tes derniers posts, tu n'as pas fait de progrès ;-)))
Bonne soirée;
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
10 nov. 2009 à 21:53
10 nov. 2009 à 21:53
bien essayé pour les balises codes ;) voilà comment ça marche :
< code >
Ton code ici {
blabla
blala
}
< /code >
(sauf qu'il ne faut pas mettre les espaces dans les balises.)
ça donne :
Ensuite, concernant ton problème :
Et bien en effet, ce code à l'air de faire la somme des éléments dans le tableau...
sauf que 1) n<k ... tu es sûr que c'est le test que tu veux faire ? c'est plutot k<n non ? sinon n sera en général toujours plus grand que k donc la boucle ne se fera jamais....
2)tu n'as encore rien mis du tout dans tab_Moyenne ! il faut remplir tab_Moyenne avec les moyennes que tu as calculé (ou alors je n'ai pas vu si tu l'as fait, désolé)
< code >
Ton code ici {
blabla
blala
}
< /code >
(sauf qu'il ne faut pas mettre les espaces dans les balises.)
ça donne :
Ton code ici { blabla blala }
Ensuite, concernant ton problème :
for (k=0;n<k;k++){ SomMoyenne+=tab_Moyenne[k]; }
Et bien en effet, ce code à l'air de faire la somme des éléments dans le tableau...
sauf que 1) n<k ... tu es sûr que c'est le test que tu veux faire ? c'est plutot k<n non ? sinon n sera en général toujours plus grand que k donc la boucle ne se fera jamais....
2)tu n'as encore rien mis du tout dans tab_Moyenne ! il faut remplir tab_Moyenne avec les moyennes que tu as calculé (ou alors je n'ai pas vu si tu l'as fait, désolé)
Moustiquet
Messages postés
212
Date d'inscription
samedi 3 octobre 2009
Statut
Membre
Dernière intervention
27 juin 2011
10 nov. 2009 à 22:18
10 nov. 2009 à 22:18
C'est pour cela que l'autre fois sa avait fonctionné et que cette fois ci sa ne fonctionnait pas c'est la position du code. Merci
pour les styles, le plus simple est de sélectionner le texte et de cliquer le bouton du style désiré => les balises se mettent en place de part et d'autre.
pour ton pgm:
1. nulle part somMoyenne n'est initialisée (ie: somMoyenne = 0;)
2. nulle part les éléments de tab_Moyenne sont initialisés ! (ie for(i=0;i<50;tab_moyenne[i++]=0);)
3. donc ta boucle cumule des valeurs indéfinies (tab_Moyenne[i]) à une valeur indéfinie (somMoyenne)
pour ton pgm:
1. nulle part somMoyenne n'est initialisée (ie: somMoyenne = 0;)
2. nulle part les éléments de tab_Moyenne sont initialisés ! (ie for(i=0;i<50;tab_moyenne[i++]=0);)
3. donc ta boucle cumule des valeurs indéfinies (tab_Moyenne[i]) à une valeur indéfinie (somMoyenne)