Moyenne pondérer! problème
Bonjour,
je bloque sur un programme( en c) qui demande les notes obtenues dans un cours ( /20), le stocker dans un vecteur. dans un autres vecteurs la pondération du cours, le programme affiche le total de l'étudiant et le pourcentage. en fait je ne vois pas comment faire quelqu'un peut m'aider à le réaliser
merci
je bloque sur un programme( en c) qui demande les notes obtenues dans un cours ( /20), le stocker dans un vecteur. dans un autres vecteurs la pondération du cours, le programme affiche le total de l'étudiant et le pourcentage. en fait je ne vois pas comment faire quelqu'un peut m'aider à le réaliser
merci
A voir également:
- Moyenne pondérer! problème
- Excel moyenne - Guide
- Moyenne en anglais excel - Guide
- Taille moyenne d'une photo en mo - Guide
- Moyenne heure excel ✓ - Forum Excel
- Moyenne si non vide ✓ - Forum Excel
3 réponses
Le concept :
- La première étape c'est de demander le nombre N de note pour pouvoir allouer tes deux vecteurs (avec un malloc).
- Ensuite il faut faire une boucle pour demander les N notes et ainsi remplir le vecteur de notes. La boucle adéquate c'est bien entendu la - boucle for (pour).
- Même chose avec les coefficients.
- Enfin il faut parcourir les deux tableaux pour calculer la moyenne arithmétique.
Pour que l'exercice te permette de t'entraîner, plutôt que de te donner directement la réponse je te propose de fonctionner en trois étapes :
1) Décrire le principe du programme (ce que je viens de faire)
2) Ecrire le programme en pseudo code
3) Ecrire le programme en C
Je te propose à présent de faire l'étape (2), je te la corrige ensuite si tu veux, et ensuite on passe de la même façon à l'étape (3).
A toi de jouer, bonne chance ;-)
- La première étape c'est de demander le nombre N de note pour pouvoir allouer tes deux vecteurs (avec un malloc).
- Ensuite il faut faire une boucle pour demander les N notes et ainsi remplir le vecteur de notes. La boucle adéquate c'est bien entendu la - boucle for (pour).
- Même chose avec les coefficients.
- Enfin il faut parcourir les deux tableaux pour calculer la moyenne arithmétique.
Pour que l'exercice te permette de t'entraîner, plutôt que de te donner directement la réponse je te propose de fonctionner en trois étapes :
1) Décrire le principe du programme (ce que je viens de faire)
2) Ecrire le programme en pseudo code
3) Ecrire le programme en C
Je te propose à présent de faire l'étape (2), je te la corrige ensuite si tu veux, et ensuite on passe de la même façon à l'étape (3).
A toi de jouer, bonne chance ;-)
bonjour jai le même problème et voici ce que jai fait, on peut m'aider à le corriger?
merci
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
int vnote[MAX],vpond[MAX];
int total, limite,i,j;
float pourcentage;
void main (void)
/* calcule de la moyenne pondérer d'un cours avce pourcentage*/
{
printf("entrez le nombre max de cours a introduire\n");
scanf("%d",&limite);
for(i=0;i<limite;i++)
{
printf("entrez note de cours\n");
scanf("%d",&vnote[i]);
}
/* for(i=0;i<limite;i++)
{
printf("%d",vnote[i]);
} */
printf("\n");
for(j=0;j<limite;j++)
{
printf("entrez la ponderation du cours\n");
scanf("%d",&vpond[j]);
}
if(vnote[i] ==vpond[i])
for(i=0;i<limite;i++)
{
printf("total\n");
total= vnote[i] + vnote[i]++;
printf("%d",total);
printf("\n");
}
else
for(i=0;i<limite;i++)
{ printf("total\n");
total= vnote[i]*vpond[j];
printf("%d",total);
}
printf("\n");
for(i=0;i<limite;i++)
{
printf("pourcentage\n");
pourcentage = (total /100)/total;
printf("%d",pourcentage);
}
}
merci
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
int vnote[MAX],vpond[MAX];
int total, limite,i,j;
float pourcentage;
void main (void)
/* calcule de la moyenne pondérer d'un cours avce pourcentage*/
{
printf("entrez le nombre max de cours a introduire\n");
scanf("%d",&limite);
for(i=0;i<limite;i++)
{
printf("entrez note de cours\n");
scanf("%d",&vnote[i]);
}
/* for(i=0;i<limite;i++)
{
printf("%d",vnote[i]);
} */
printf("\n");
for(j=0;j<limite;j++)
{
printf("entrez la ponderation du cours\n");
scanf("%d",&vpond[j]);
}
if(vnote[i] ==vpond[i])
for(i=0;i<limite;i++)
{
printf("total\n");
total= vnote[i] + vnote[i]++;
printf("%d",total);
printf("\n");
}
else
for(i=0;i<limite;i++)
{ printf("total\n");
total= vnote[i]*vpond[j];
printf("%d",total);
}
printf("\n");
for(i=0;i<limite;i++)
{
printf("pourcentage\n");
pourcentage = (total /100)/total;
printf("%d",pourcentage);
}
}
Je ne comprends pas très bien le passage
Première étape demander le nombre de notes, sinon tu es obligé d'allouer statiquement tes deux vecteurs (cf <1>). Typiquement ici tu ne peux avoir plus de 20 notes. Le reste est bon dans l'ensemble hormis le passage que je ne comprends pas.
Voici le programme que je vous propose.
A l'exécution :
Tu noteras que main retourne un int (code d'exécution 0 = tout va bien).
Bonne chance
total= vnote[i] + vnote[i]++;
Première étape demander le nombre de notes, sinon tu es obligé d'allouer statiquement tes deux vecteurs (cf <1>). Typiquement ici tu ne peux avoir plus de 20 notes. Le reste est bon dans l'ensemble hormis le passage que je ne comprends pas.
Voici le programme que je vous propose.
#include <stdio.h>
#include <stdlib.h>
int main(){
unsigned nb_note,i;
double *vnotes,*vcoeff;
// Demander le nombre de notes
printf("Nb notes ? ");
scanf("%i",&nb_note);
// Allouer les deux vecteurs
vnotes = (double *)malloc(nb_note*sizeof(double));
vcoeff = (double *)malloc(nb_note*sizeof(double));
// Demander les notes
printf("Saisissez les notes :\n");
for(i = 0;i < nb_note; ++i){
double note;
do{
printf("Note (%i/%i) ? ",i+1,nb_note);
scanf("%lf",¬e);
}while(note > 20 || note < 0);
vnotes[i] = note;
}
// Demander les coeffs
printf("Saisissez les notes :\n");
for(i = 0;i < nb_note; ++i){
double coeff;
do{
printf("Coeff (%i/%i) ? ",i+1,nb_note);
scanf("%lf",&coeff);
}while(coeff < 0);
vcoeff[i] = coeff;
}
// Calculer la moyenne
{
double moyenne = 0;
double somme_coeff = 0;
for(i = 0;i < nb_note; ++i){
moyenne += vcoeff[i]*vnotes[i];
somme_coeff += vcoeff[i];
}
moyenne /= somme_coeff;
printf("moyenne = %lf\n",moyenne);
}
// Libérer les deux vecteurs
free(vnotes);
free(vcoeff);
return 0;
}
A l'exécution :
Nb notes ? 5 Saisissez les notes : Note (1/5) ? 10 Note (2/5) ? 11.5 Note (3/5) ? 17 Note (4/5) ? 14 Note (5/5) ? 8 Saisissez les notes : Coeff (1/5) ? 4 Coeff (2/5) ? 1 Coeff (3/5) ? 5 Coeff (4/5) ? 2 Coeff (5/5) ? 3 moyenne = 12.566667
Tu noteras que main retourne un int (code d'exécution 0 = tout va bien).
Bonne chance