Exercice en c (j'ai besoin de votre aide)
Résolu
techis
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
ks13 Messages postés 191 Date d'inscription Statut Membre Dernière intervention -
ks13 Messages postés 191 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un exercice en c, je le fais mais il me reste un petit problème, la moyenne max et la moyenne min, sa marche pas voila ma solution si qlq 1 peut m'aider ça sera bien merci!!
=================================================================
Exercice : écrire un algorithme qui permet de calculer les moyennes de N « élèves », la somme
Des moyennes, la moyenne de la classe, la moyenne min et la moyenne max.
matières coefficient
============================
informatique 4
comptabilité 3
gestion 3
==================================================================
solution
======
Solution :
#include<stdio.h>
#include<conio.h>
main(){
float min1,min2,max1,max2,max,min,mc,moy,s,note1,note2,note3,note,sn;
int n,i;
printf("donner n:");
scanf("%d",&n);
sn=0;
for(i=1;i<=n;i++){
printf("donner la note d'info:");
scanf("%f",¬e1);
printf("donner la note de compta:");
scanf("%f",¬e2);
printf("donner la note de gestion:");
scanf("%f",¬e3);
s=(note1*4)+(note2*3)+(note3*3);
moy=s/10;
note=note1+note2+note3;
sn=sn+note;
mc=note/3;
printf("la moyenne est:%.2f\n",moy);
printf("\n");
if(note1>note2){
max1=note1;
min1=note2;
}
else{
max1=note2;
min1=note1;
}
if(note2>note3){
max2=note2;
min2=note3;
}
else{
max2=note3;
min2=note2;
}
if(max1>max2)
max=max1;
else
max=max2;
if(min1>min2)
min=min2;
else
min=min1;
}
printf("la somme des notes est %.2f\n",sn);
printf("la moyenne de la classe est:%.2f\n",mc);
printf("\n");
printf("la note minimale est: %.2f\n",min);
printf("la note maximale est: %.2f\n",max);
getch();
return 0;
}
j'ai un exercice en c, je le fais mais il me reste un petit problème, la moyenne max et la moyenne min, sa marche pas voila ma solution si qlq 1 peut m'aider ça sera bien merci!!
=================================================================
Exercice : écrire un algorithme qui permet de calculer les moyennes de N « élèves », la somme
Des moyennes, la moyenne de la classe, la moyenne min et la moyenne max.
matières coefficient
============================
informatique 4
comptabilité 3
gestion 3
==================================================================
solution
======
Solution :
#include<stdio.h>
#include<conio.h>
main(){
float min1,min2,max1,max2,max,min,mc,moy,s,note1,note2,note3,note,sn;
int n,i;
printf("donner n:");
scanf("%d",&n);
sn=0;
for(i=1;i<=n;i++){
printf("donner la note d'info:");
scanf("%f",¬e1);
printf("donner la note de compta:");
scanf("%f",¬e2);
printf("donner la note de gestion:");
scanf("%f",¬e3);
s=(note1*4)+(note2*3)+(note3*3);
moy=s/10;
note=note1+note2+note3;
sn=sn+note;
mc=note/3;
printf("la moyenne est:%.2f\n",moy);
printf("\n");
if(note1>note2){
max1=note1;
min1=note2;
}
else{
max1=note2;
min1=note1;
}
if(note2>note3){
max2=note2;
min2=note3;
}
else{
max2=note3;
min2=note2;
}
if(max1>max2)
max=max1;
else
max=max2;
if(min1>min2)
min=min2;
else
min=min1;
}
printf("la somme des notes est %.2f\n",sn);
printf("la moyenne de la classe est:%.2f\n",mc);
printf("\n");
printf("la note minimale est: %.2f\n",min);
printf("la note maximale est: %.2f\n",max);
getch();
return 0;
}
A voir également:
- Exercice en c (j'ai besoin de votre aide)
- Transmath 3eme exercice ✓ - Forum Études / Formation High-Tech
- Corrigé d'un exercice du livre transmaths 3e - Forum Loisirs / Divertissements
- Fleur d'encre 5eme corrigé exercice - Forum PDF
- Corrigés 350 exercices niveau moyen ✓ - Forum Loisirs / Divertissements
- Livre du professeur 5eme fleur d'ancre ✓ - Forum PDF
15 réponses
Euh, j'ai plus ou moins compris ce que chaque variable veut dire dans ton code, mais tu pourrais Explicitement expliquer chacune des variables comme meme?
Car, a moins que j'ai mal compris ton code, tu demande au debut combien de notes d'eleves il y a => N
apres, tu demande pour chaque eleve les 3 notes => note1 note2 et note3
ensuite tu fais la moyenne des 3 notes de l'eleve => s et moy
puis tu calcules la somme des moyennes => sm
ensuite tu fais la moyenne de la classe => mc (???)
et pour finir tu definis la note minimum et maximum => min et max
C'est bien cela ou me serais je trompe?
Car, a moins que j'ai mal compris ton code, tu demande au debut combien de notes d'eleves il y a => N
apres, tu demande pour chaque eleve les 3 notes => note1 note2 et note3
ensuite tu fais la moyenne des 3 notes de l'eleve => s et moy
puis tu calcules la somme des moyennes => sm
ensuite tu fais la moyenne de la classe => mc (???)
et pour finir tu definis la note minimum et maximum => min et max
C'est bien cela ou me serais je trompe?
RQ: on veut la somme des moyenne, j'ai pas compris pourquoi tu calcule note?
je crois qu'il faut faire :
sn=sn+moy
sn: somme des moyennes
mc:moyenne de la classe tu ecris après la boucle sur n:
mc=sn/n : la moyenne de la classe
pour la moyenne max et min on aura besoin de mmax et mmin
si la moyenne est la max donc mmax=moy
traduction:
tu initialise mmax= 0 et mmin=0 avant la boucle for et tu ajoute dans la boucle for
if (moy>mmax)
{ mmax=moy;
}
if(moy<mmin)
{mmin=moy;
}
j'espère que ça marchera^^
PS: je ne suis pas un informaticien ;)
je crois qu'il faut faire :
sn=sn+moy
sn: somme des moyennes
mc:moyenne de la classe tu ecris après la boucle sur n:
mc=sn/n : la moyenne de la classe
pour la moyenne max et min on aura besoin de mmax et mmin
si la moyenne est la max donc mmax=moy
traduction:
tu initialise mmax= 0 et mmin=0 avant la boucle for et tu ajoute dans la boucle for
if (moy>mmax)
{ mmax=moy;
}
if(moy<mmin)
{mmin=moy;
}
j'espère que ça marchera^^
PS: je ne suis pas un informaticien ;)
note1=informatique note2=comptabilité note3=gestion
note( c'est une variable qui stock la somme des note)
mc(moyenne de la classe) s(somme) moy(moyenne) min et max (le maximum et le minimum des notes qui seront affichés a la fin)........sn(somme des notes) voila!!
note( c'est une variable qui stock la somme des note)
mc(moyenne de la classe) s(somme) moy(moyenne) min et max (le maximum et le minimum des notes qui seront affichés a la fin)........sn(somme des notes) voila!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un autre probleme dans ton code : la somme des moyennes et la moyenne de la classe se fait apres que tu a donne toutes les notes normalement pas pendant la boucle.
Aussi, est-ce que tu fais la somme par eleve des 3 matieres ou par matiere de tous les eleves?
Si c'est par eleve tu fais la moyenne des 3 matieres en faisant la somme puis divisant par les coefs comme dans ton code, mais si c par matiere tu fais la somme des notes par matiere et tu divise par le nombre d'eleves.
Aussi, est-ce que tu fais la somme par eleve des 3 matieres ou par matiere de tous les eleves?
Si c'est par eleve tu fais la moyenne des 3 matieres en faisant la somme puis divisant par les coefs comme dans ton code, mais si c par matiere tu fais la somme des notes par matiere et tu divise par le nombre d'eleves.
Solution :
#include<stdio.h>
#include<conio.h>
main(){
float mmin,mmax,mc,moy,s,note1,note2,note3,note,sn;
int n,i;
printf("donner n:");
scanf("%d",&n);
sn=0;
mmax=0;
mmin=20;
for(i=1;i<=n;i++)
{
printf("donner la note d'info:");
scanf("%f",¬e1);
printf("donner la note de compta:");
scanf("%f",¬e2);
printf("donner la note de gestion:");
scanf("%f",¬e3);
s=(note1*4)+(note2*3)+(note3*3);
moy=s/10;
sn=sn+moy;
printf("la moyenne est:%.2f\n",moy);
printf("\n");
if(moy>mmax)
{
mmax=moy;
}
if(moy<mmin)
{
mmin=moy;
}
} %fin boucle for
mc=sn/n
printf("la somme des notes est %.2f\n",sn);
printf("la moyenne de la classe est:%.2f\n",mc);
printf("\n");
printf("la moyenne minimale est: %.2f\n",mmin);
printf("la moyenne maximale est: %.2f\n",mmax);
getch();
return 0;
}
PS: le mmin doit etre initialisé en 20 ^^ pas en 0
#include<stdio.h>
#include<conio.h>
main(){
float mmin,mmax,mc,moy,s,note1,note2,note3,note,sn;
int n,i;
printf("donner n:");
scanf("%d",&n);
sn=0;
mmax=0;
mmin=20;
for(i=1;i<=n;i++)
{
printf("donner la note d'info:");
scanf("%f",¬e1);
printf("donner la note de compta:");
scanf("%f",¬e2);
printf("donner la note de gestion:");
scanf("%f",¬e3);
s=(note1*4)+(note2*3)+(note3*3);
moy=s/10;
sn=sn+moy;
printf("la moyenne est:%.2f\n",moy);
printf("\n");
if(moy>mmax)
{
mmax=moy;
}
if(moy<mmin)
{
mmin=moy;
}
} %fin boucle for
mc=sn/n
printf("la somme des notes est %.2f\n",sn);
printf("la moyenne de la classe est:%.2f\n",mc);
printf("\n");
printf("la moyenne minimale est: %.2f\n",mmin);
printf("la moyenne maximale est: %.2f\n",mmax);
getch();
return 0;
}
PS: le mmin doit etre initialisé en 20 ^^ pas en 0
Voyons si on peut nettoyer un peu tout ce meli melo :
Personnelement j'ai vire quelques variables tout a fait inutiles et j'ai change la somme des notes, qui n'est pas demandee, en somme des moyennes.
Aussi, ceci est la methode pour avoir les moyennes par eleve, il faudra changer quelques lignes pour avoir la moyenne par matiere.
#include<stdio.h> #include<conio.h> main(){ float max,min,mc,moy,s,note1,note2,note3,note,sm; int n,i; printf("donner le nombre d'eleves:"); scanf("%d",&n); sm=0; max=0; min=0; for(i=1;i<=n;i++){ printf("donner la note d'info:"); scanf("%f",¬e1); printf("donner la note de compta:"); scanf("%f",¬e2); printf("donner la note de gestion:"); scanf("%f",¬e3); s=(note1*4)+(note2*3)+(note3*3); moy=s/10; sm=sm+moy; printf("la moyenne est:%.2f\n",moy); printf("\n"); if(max<note1){ max=note1; } elseif(max<note2){ max=note2; } elseif(max<note3){ max=note3; } if(min<note1){ min=note1; } elseif(min<note2){ min=note2; } elseif(min<note3){ min=note3; } mc = sm/n; printf("la somme des moyennes est %.2f\n",sm); printf("la moyenne de la classe est:%.2f\n",mc); printf("\n"); printf("la note minimale est: %.2f\n",min); printf("la note maximale est: %.2f\n",max); getch(); return 0; }
Personnelement j'ai vire quelques variables tout a fait inutiles et j'ai change la somme des notes, qui n'est pas demandee, en somme des moyennes.
Aussi, ceci est la methode pour avoir les moyennes par eleve, il faudra changer quelques lignes pour avoir la moyenne par matiere.
oui ce que je voulais vous dire la note max et min sera afficher : quand l'utilisateur faire entrer ses notes:
par exemple
donner n:3 ca veut dire le nombre de fois que la boucle sera répéter 3 fois
donc==> note1 : 15 note 2: 16 note3: 18
note1:14 note2: 10 note3: 17
note1:13 note2: 8 note3: 7
le resultat qui doit le programme affiche c'est
la somme des moyennes est: 15+14+13+16+10+8+18+17+7=118
la moyenne de la classe: 118/9=13.11
la note maximale est: 18 la note minimale est: 7 voila c'est l'idée général de l'enoncé
merci!!!
par exemple
donner n:3 ca veut dire le nombre de fois que la boucle sera répéter 3 fois
donc==> note1 : 15 note 2: 16 note3: 18
note1:14 note2: 10 note3: 17
note1:13 note2: 8 note3: 7
le resultat qui doit le programme affiche c'est
la somme des moyennes est: 15+14+13+16+10+8+18+17+7=118
la moyenne de la classe: 118/9=13.11
la note maximale est: 18 la note minimale est: 7 voila c'est l'idée général de l'enoncé
merci!!!
tu es sur que t'a bien compris l'ennocé?
parceque tu confus note avec moyenne !
l'ennocé veut: les moyennes, la somme Des moyennes, la moyenne de la classe, la moyenne min et la moyenne max.
mais toi tu vx:
les moyennes, la somme Des notes, la moyenne des notes de toutes les matières de la classe, la note min et la note max.
parceque tu confus note avec moyenne !
l'ennocé veut: les moyennes, la somme Des moyennes, la moyenne de la classe, la moyenne min et la moyenne max.
mais toi tu vx:
les moyennes, la somme Des notes, la moyenne des notes de toutes les matières de la classe, la note min et la note max.
Oula, je crois que tu dois reviser tes maths, la somme des moyennes c'est pas la somme des notes comme tu viens de l'ecrire.
La somme des moyennes serait, dans ton exemple,
sommemoy = (15*4 + 16*3 + 18*3)/10 + (14*4+10*3+17*3)/10 + (13*4+8*3+7*3)/10
et la moyenne de la classe serait
moyclasse = sommemoy/3 (car 3 eleves)
A moins que les maths ont change dans les dernieres 2 ans a l'ecole, je ne pense pas me tromper. Mais voila le probleme resolu : le probleme venais de ta facon de calculer les moyennes :)
La somme des moyennes serait, dans ton exemple,
sommemoy = (15*4 + 16*3 + 18*3)/10 + (14*4+10*3+17*3)/10 + (13*4+8*3+7*3)/10
et la moyenne de la classe serait
moyclasse = sommemoy/3 (car 3 eleves)
A moins que les maths ont change dans les dernieres 2 ans a l'ecole, je ne pense pas me tromper. Mais voila le probleme resolu : le probleme venais de ta facon de calculer les moyennes :)
Tésté et Approuvé par moi meme
#include<stdio.h>
#include<conio.h>
main(){
float mmin,mmax,mc,moy,s,note1,note2,note3,note,sn;
int n,i;
printf("donner n:");
scanf("%d",&n);
sn=0;
mmax=0;
mmin=20;
for(i=1;i<=n;i++)
{
printf("donner la note d'info pour l'etudiant %d:",i);
scanf("%f",¬e1);
printf("donner la note de compta pour l'etudiant %d:",i);
scanf("%f",¬e2);
printf("donner la note de gestion pour l'etudiant %d:",i);
scanf("%f",¬e3);
s=(note1*4)+(note2*3)+(note3*3);
moy=s/10;
sn=sn+moy;
printf("la moyenne est:%.2f\n",moy);
printf("\n");
if(moy>mmax)
{
mmax=moy;
}
if(moy<mmin)
{
mmin=moy;
}
}
mc=sn/n ;
printf("la somme des moyennes est %.2f\n",sn);
printf("la moyenne de la classe est:%.2f\n",mc);
printf("\n");
printf("la moyenne minimale est: %.2f\n",mmin);
printf("la moyenne maximale est: %.2f\n",mmax);
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
main(){
float mmin,mmax,mc,moy,s,note1,note2,note3,note,sn;
int n,i;
printf("donner n:");
scanf("%d",&n);
sn=0;
mmax=0;
mmin=20;
for(i=1;i<=n;i++)
{
printf("donner la note d'info pour l'etudiant %d:",i);
scanf("%f",¬e1);
printf("donner la note de compta pour l'etudiant %d:",i);
scanf("%f",¬e2);
printf("donner la note de gestion pour l'etudiant %d:",i);
scanf("%f",¬e3);
s=(note1*4)+(note2*3)+(note3*3);
moy=s/10;
sn=sn+moy;
printf("la moyenne est:%.2f\n",moy);
printf("\n");
if(moy>mmax)
{
mmax=moy;
}
if(moy<mmin)
{
mmin=moy;
}
}
mc=sn/n ;
printf("la somme des moyennes est %.2f\n",sn);
printf("la moyenne de la classe est:%.2f\n",mc);
printf("\n");
printf("la moyenne minimale est: %.2f\n",mmin);
printf("la moyenne maximale est: %.2f\n",mmax);
getch();
return 0;
}