Difficulté a manipuler les tableaux
Moustiquet
Messages postés
212
Date d'inscription
Statut
Membre
Dernière intervention
-
Moustiquet Messages postés 212 Date d'inscription Statut Membre Dernière intervention -
Moustiquet Messages postés 212 Date d'inscription Statut Membre Dernière intervention -
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 par
////////////////////////////////////////////////////////////////////////////////
#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 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);
/*Creation de la boucle des moyenne tous les patineurs*/
for (k=0;n<k;k++){
SomMoyenne+=tab_Moyenne[k];}
//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;
}
Je m'appecois que j'ai de la difficulté a manipuler un tableau avec la boucle for. Dans ce qui devrait -etre en GRAS dans mon programme est un desir de faire un tableau de moyenne de mes patineur, mais a chaque fois que je desir faire une boucle for et faire une somme , dans ce cas ci la somme des moyenne des patineur le compilateur me renvoit toujours le message que :ist not a array ans nor a pointer.
Merci
//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
////////////////////////////////////////////////////////////////////////////////
#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 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);
/*Creation de la boucle des moyenne tous les patineurs*/
for (k=0;n<k;k++){
SomMoyenne+=tab_Moyenne[k];}
//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;
}
Je m'appecois que j'ai de la difficulté a manipuler un tableau avec la boucle for. Dans ce qui devrait -etre en GRAS dans mon programme est un desir de faire un tableau de moyenne de mes patineur, mais a chaque fois que je desir faire une boucle for et faire une somme , dans ce cas ci la somme des moyenne des patineur le compilateur me renvoit toujours le message que :ist not a array ans nor a pointer.
Merci
A voir également:
- Difficulté a manipuler les tableaux
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Les tableaux word - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Tableau à 3 entrées - Forum Excel
4 réponses
//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é
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;
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é)
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)