Moyenne pondérer! problème
Fermé
justine
-
22 nov. 2007 à 18:08
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 26 nov. 2007 à 00:28
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 26 nov. 2007 à 00:28
A voir également:
- Moyenne pondérer! problème
- Calculer une moyenne sur excel - Guide
- Moyenne excel anglais - Guide
- Moyenne date excel - Forum Excel
- Taille moyenne d'une photo en mo - Guide
- Faire une moyenne sur 20 ✓ - Forum Bureautique
3 réponses
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
22 nov. 2007 à 18:47
22 nov. 2007 à 18:47
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);
}
}
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
26 nov. 2007 à 00:28
26 nov. 2007 à 00:28
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