si on veut continuer il faut appuyer sur 'O'
Il faudrait que nbre ne dépasse pas 39 plutot non ?
on veut que sa boucle que jusqu'à tant que rep =='O' ou nbre == 39
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
s_etudiants : structure
nom : chaine
moy : réel
finstructure
t_etudiant[1..40] : s_etudiant
moyenne : réel
rep : caractere
nb, k : entier
debut
nb <- 0 // compteur d'étudiants
moyenne <- 0 // cumul des moyennes
//--- saisie des informations ---
repeter
nb <- nb + 1
afficher "nom de l'étudiant = "
saisir t_etudiant[nb].nom
afficher "moyenne de l'étudiant = "
saisir t_etudiant[nb].moy
moyenne <- moyenne + t_etudiant[nb].moy
afficher "voulez-vous continuer ? (O/N) "
saisir rep
jusqu'à rep = "N" ou nb = 40
//--- calcul de la moyenne ---
moyenne <- moyenne / nb
//--- affichage des étudiants au dessus de la moyenne ---
pour k de 1 à nb
si t_etudiant[k].moy > moyenne alors
afficher t_etudiant[k].nom
finsi
finpour
fin
avec un OU exclusif on aurait SOIT l'un, SOIT l'autre
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
void clear (void) { while (getchar () != '\n') ; } int main() { // -- Déclarations -- struct s_etudiants { signed char nom[10] ; double moyenne ; }; char rep ; double moyenne = 0 ; // Cumul des moyennes int nbre = 0 ; // Compteurs d'étudiants int k ; s_etudiants t_etudiant[39] ; // -- Saisie des informations -- do { printf(" Nom de l'\x82tudiant = ") ; scanf("%s",t_etudiant[nbre].nom) ; printf(" Moyenne de l'\x82tudiant = ") ; scanf("%lf",&t_etudiant[nbre].moyenne) ; moyenne = moyenne + t_etudiant[nbre].moyenne ; printf(" Voulez-vous continuez ? (O/n) : ") ; clear() ; scanf("%c",&rep) ; nbre++ ; } while(rep == 'O' | nbre == 39) ; // -- Calcul de la moyenne -- moyenne = (moyenne / nbre) ; // -- Affichage des étudiants au dessus de la moyenne -- for (k = 0; k <= nbre-1; k++) { if (t_etudiant[k].moyenne > moyenne) { printf(" \nEtudiants au dessus de la moyenne = %s\n ", t_etudiant[k].nom) ; } } getch() ; return 0 ; }
do
{
.............
.............
.............
}
while () ;
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
#include <stdio.h> typedef struct { char nom[10]; double moyenne; } s_etudiants; void clear(void) { while (getchar () != '\n') ; } int main() { char rep = 0; int nb = 0; int k = 0; double moyenne = 0; s_etudiants etudiants[39]; do { printf("Nom de l'etudiant: "); scanf("%s", etudiants[nb].nom); printf("Moyenne de l'etudiant: "); scanf("%lf", &etudiants[nb].moyenne); moyenne = moyenne + etudiants[nb].moyenne; printf("Voulez-vous continuez ? (O/n): ") ; clear() ; scanf("%c", &rep); nb++; } while (rep != 'n' && nb < 39); moyenne = moyenne / nb; for (k = 0; k < nb; ++k) if (etudiants[k].moyenne > moyenne) printf("Etudiant au dessus de la moyenne (de %f) = %s (avec un note de %f)\n", moyenne, etudiants[k].nom, etudiants[k].moyenne); return 0; }