Bonsoir
Voila le programme que je dois faire en C.
Description du problème
Vous devez réaliser un programme permettant de calculer une moyenne semestrielle. Le programme demande à l’utilisateur de saisir le nombre de notes qu’il veut introduire.
Ces notes vont de 1 à 6. Le programme contrôle que les données saisies soient correctes.
Lorsque la dernière note a été saisie, il affiche un message
selon les critères suivants :
De 1.0 à 3.0 => Largement insuffisant
De 3.0 à 4.0 => Insuffisant
De 4.0 à 4.5 => Suffisant
De 4.5 à 5.5 => Bien
De 5.5 à 6.0 => Excellent
Point facultatif 1 : Les notes sont arrondies au dixième.
Point facultatif 2 : Une fois la moyenne calculée, le programme demande à l’utilisateur si il veut recommencer.
La seul problématique que je rencontre c'est comment déclarer le nombre de variable en fonction du nombre de note qu'il veut entrer!
En gros comment faire en sorte que le programme sache que l utilisateur veut entrer 120 note par exemple et comment les stocker!
voila le porblème, je ne demande pas spécialement la ligne de code mais pouvez vous em mettre sur la piste?
Voila mes connaissance en C:
Les librairie: stdlib.h / stdio.h
printf/scanf
else if
do while
int, et plus ou moin float
et les différents opéarateur, opérateur logiques
en gros, les bases.
Je vous remercie d'avance!
PS:
Les notes qui figure dans le programme sont des note scolaire du système suisse en gros un 1 c'est la plus m'auvaise note( 1.1, 1.2, 1.3 etc jusque à 6.0 qui correspond à un 20/20.
En gros je penssais faire:
int nbrdenote = 0
while( nbrdenote == nbrdenote)
printf("Entrez le nombre de note que vous voulais saisire");
scanf("%i",&nbrdenote);
Je pense être sur la bonne voix mais...un doute persiste.
" while( nbrdenote == nbrdenote) "
nbrdenote sera toujours égal a nbrdenote, on ne teste pas si une variable est égale à elle-même, ça n'a pas de sens. ![]()
Et si ca peut vous aidez voila comment on calcule la moyenne:
note+note+note+note.....= Resultat
Resultat / Le_nombre_de_Note
C'est la seconde fois en 2 jours que je vois un "while(b==b)", ça a l'air d'être un virus qui se propage ce non-sens... ![]()
Pocolo
Je sais que c'est faut mais je voulais faire en sorte que
d'une fois qu'on à rentrer le nombre de note voulue on quitte la boucle mais ensuite comment allez cherchez chaque note pour les calculer.
Tu es obligé de stocker chaque note individuellement?
Ça m'a l'air d'être un travail de niveau débutant donc j'imagine que non.
Et si j'ai raison, ce que tu pourrais simplement faire c'est d'ajouter la note que l'utilisateur vient d'entrer au résultat, et tu fais de même à chaque fois que l'utilisateur entre une note.
Tu incrémentes également un compteur de notes après l'ajout de chaque note.
ha oui, le ++
Je vais voir ca, merci
HA voila ce que ca donne:
int nbrdenote = 0;
int note = 0;
int compteur = 0;
printf("Entrer le nombre de notes que vous désirez saisire");
scanf("%i",&nbrdenote);
do{
printf("Veuiller entrer les notes:");
scanf("%i",¬e);
compteur++;
}while( compteur != nbrdenote);
Maintenant reste à faire cette moyenne, hésitez pas à me mettre sur la piste.
Merci ![]()
[Original]
Si ça peux t'aider, voici le schéma général du programme :
1) On déclare les variables (pour une première approche on peut en utiliser quatre, note, Resultat, Le_nombre_de_Note et nombre_de_note_saisies)
2) On demande à l'utilisateur combien il veut entrer de notes, on stocke ce résultat
3) Tant que l'utilisateur n'a pas saisi toutes les notes (tant que le nombre de notes saisi est inférieur au nombre de notes à entrer), on demande les notes à l'utilisateur et simultanément on commence le calcul de la moyenne
4) L'utilisateur a rentré toutes les notes, une dernière opération permet de calculer la moyenne
5) On affiche la moyenne avec le petit commentaire qui va bien
Ah tu as été plus rapide que moi
Pour que le calcul de la moyenne, demande-toi comment tu peux calculer note+note+note+note.....= Resultat à l'aide de ta boucle do while.
Bon voila ce que j'obtiens:
int nbrdenote = 0;
int note = 0;
int compteur = 0;
int resultat = 0;
int moyenne = 0;
printf("Entrer le nombre de notes que vous desirez saisire\n");
scanf("%i",&nbrdenote);
do{
printf("Veuiller entrer les notes:");
scanf("%i",¬e);
note+note = resultat;
compteur++;
}while( compteur != nbrdenote);
printf("%i",resultat/nbrdenote=moyenne);
scanf("%i",&moyenne);
J'ai un doute sur la partie note+note = resultat, c'est censé additionner chaque note..
et le calcul de la moyenne à al fin. :/ ![]()
Oula, il y a des trucs qui sont à revoir, surtout au niveau des opérateurs, tu n'as visiblement pas bien compris comment ça marche, relis tes cours à ce niveau-là;
Déjà "note+note = resultat;" devrait donner une erreur de compilation. Avec l'opérateur "=" tu affectes une valeur (située à droite de l'opérateur) à la variable située à gauche de cet opérateur et "note+note" n'est pas une variable (ici l'opérateur + renvoie un entier correspondant à l'ajout de note+note).
Puis c'est pareil pour "resultat/nbrdenote=moyenne".
Bien merci, je vais revoir tout cela ![]()
J'imagine que tu dois faire un tableau.
Sans tableau, si tu dois juste faire la moyenne sans stocker les notes tu dois sans doute faire une boucle for (en ayant d'abord fait saisir le nombre de note) puis saisir chaque note calculer ta somme au fur et a mesure. Puis une fois sortie de la boucle tu calcules la moyenne en divisant la somme par le nombre de note.
[Original]
Posté le 12 novembre 2011 à 18:56:32
Bon voila ce que j'obtiens:
int nbrdenote = 0;
int note = 0;
int compteur = 0;
int resultat = 0;
int moyenne = 0;
printf("Entrer le nombre de notes que vous desirez saisire\n");
scanf("%i",&nbrdenote);
do{
printf("Veuiller entrer les notes:");
scanf("%i",¬e);
note+note = resultat;
compteur++;
}while( compteur != nbrdenote);
printf("%i",resultat/nbrdenote=moyenne);
scanf("%i",&moyenne);
J'ai un doute sur la partie note+note = resultat, c'est censé additionner chaque note..
et le calcul de la moyenne à al fin. :/
Ta moyenne sera un floatant
"note+note = resultat; " Dans l'autre sens
printf("%i",resultat/nbrdenote=moyenne);
scanf("%i",&moyenne);
Je vois pas trop ce que tu fais en fait.
T'as juste à faire :
moyenne = ((float)resultat/nbrdenote);
printf("La moyenne est %f", moyenne);
Bon après j'ai peut-être faux, je suis encore débutant mais ça me parait plus logique.
Merci de vos infos.
oui ca ce rapproche mais il me semble qu'il y a toujours une erreur sur l'adition des note et sont résultat.
Tiens si tu veux corriger. Normalement c'est bon.
Et pour ton calcul du résultat, ton problème bien du fait que tu fais resultat = note + note, au lieu de faire resultat = resultat + note.
Dans ton cas tu ne fais que donner le double de la note saisie dans la variable resultat, alors qu'en faisant resultat = resultat+note tu tiens compte de sa valeur précédente en lui additionnant la nouvelle note.
int main()
{
int nbrdenote, compteur, repeter, note, resultat;
float moyenne;
printf("Entrez le nombre de notes que vous desirez saisir\n");
scanf("%d", &nbrdenote);
while(nbrdenote<=0)
{
printf("reponse invalide\n");
scanf("%d", &nbrdenote);
}
do{
compteur=0;
resultat=0;
do{
printf("Veuiller entrer la note %d : ", compteur+1);
scanf("%d", ¬e);
while(note<0 || note>6)
{
printf("resaisir la note %d : ", compteur+1);
scanf("%d", ¬e);
}
resultat=resultat+note;
compteur++;
}while( compteur != nbrdenote);
moyenne=((float)resultat/nbrdenote);
printf("La moyenne est %f", moyenne);
// boucle switch à rajouter pour la mention
printf("\n\nVoulez vous recommencer ? 0=non, 1=oui\n");
scanf("%d", &repeter);
while(repeter!=1 && repeter!=0)
{
printf("erreur...\n");
scanf("%d", &repeter);
}
}while(repeter==1);
}
![]()
awè, Merci bien! ![]()