Calculer moyenne
Résolu/Fermé
anthony
-
16 févr. 2010 à 15:10
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 16 févr. 2010 à 21:42
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 16 févr. 2010 à 21:42
A voir également:
- Calculer moyenne
- Calculer une moyenne sur excel - Guide
- Calculer alimentation pc - Guide
- Smartphone moyenne gamme - Guide
- Formule pour calculer le total sur excel - Guide
- Moyenne de plusieurs pourcentages excel ✓ - Forum Excel
12 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
16 févr. 2010 à 15:21
16 févr. 2010 à 15:21
printf("la moyenne est de %f\n", moyenne(tableau[NOTE]));
=> printf("la moyenne est de %f\n", moyenne(tableau[]));
voir meme => printf("la moyenne est de %f\n", moyenne(tableau));
float moyenne(float tableau[NOTE])
=> float moyenne(float tableau[])
et moi je préfèrerai
=> float moyenne(float *tableau)
en C, une fois que t'as déclaré la taille du tableau à la création, lui il se moque bien de la taille...
=> printf("la moyenne est de %f\n", moyenne(tableau[]));
voir meme => printf("la moyenne est de %f\n", moyenne(tableau));
float moyenne(float tableau[NOTE])
=> float moyenne(float tableau[])
et moi je préfèrerai
=> float moyenne(float *tableau)
en C, une fois que t'as déclaré la taille du tableau à la création, lui il se moque bien de la taille...
ah ok donc en gros un fois déclarer je n'ai plus besoin de mettre la taille ?
et pour ton code sa ne marche pas:
et pour ton code sa ne marche pas:
printf("la moyenne est de %.2f\n", moyenne(tableau[]));
C:\Users\Anthony\Documents\test\main.c||In function `main':| C:\Users\Anthony\Documents\test\main.c|13|error: syntax error before ']' token| ||=== Build finished: 1 errors, 0 warnings ===|
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
>
anthony
16 févr. 2010 à 15:26
16 févr. 2010 à 15:26
essaye la 2° modifs:
printf("la moyenne est de %.2f\n", moyenne(tableau));
et poru être sur, tu ratrappes avec un float *tableau dans ta déclaration de fonction
printf("la moyenne est de %.2f\n", moyenne(tableau));
et poru être sur, tu ratrappes avec un float *tableau dans ta déclaration de fonction
ah oui sa marche mais quand tu dit que en C quand on déclarer la taille d'un tableau lui il se moque bien de la taille donc en gros plus besoin de redire la taille du tableau donc si je met sa sa devrais marcher:
biensur je modifie le prototype et ben pourtant non sa ne marche pas sa me met un message d'erreur :
float moyenne(float tableau)
biensur je modifie le prototype et ben pourtant non sa ne marche pas sa me met un message d'erreur :
C:\Users\Anthony\Documents\test\main.c||In function `main':| C:\Users\Anthony\Documents\test\main.c|13|error: incompatible type for argument 1 of `moyenne'| C:\Users\Anthony\Documents\test\main.c||In function `moyenne':| C:\Users\Anthony\Documents\test\main.c|24|error: subscripted value is neither array nor pointer| ||=== Build finished: 2 errors, 0 warnings ===|
Perso je pense aussi qu'il faut un moyenne(tableau)
Et puis il y a une faute de frappe tout au début :
"puts("Entrez vos tros notes pour calculer votre moyenne");"
tu devrais mettre
puts("Entrez vos trois notes pour calculer votre moyenne");
Désolé sa me perturbais :)
Et puis il y a une faute de frappe tout au début :
"puts("Entrez vos tros notes pour calculer votre moyenne");"
tu devrais mettre
puts("Entrez vos trois notes pour calculer votre moyenne");
Désolé sa me perturbais :)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
16 févr. 2010 à 15:35
16 févr. 2010 à 15:35
je crois qu'il y a une erreur dans ce que tu dis
Désolé ça me perturbais :)
Désolé ça me perturbais :)
blux
Messages postés
26006
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
>
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
16 févr. 2010 à 16:13
16 févr. 2010 à 16:13
Ca me perturbait...
;-)
;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
16 févr. 2010 à 15:38
16 févr. 2010 à 15:38
un tableau c'est un pointeur (de type float*). Donc, tu passes la taille lors de la création, mais sinon, lors des passsage d'une fonction à l'autre, c'est toujours un type float*
par contre, une fois dans ta fonction, rien ne t'empèche d'utiliser la notation "classique" du tableau tableau[1], etc...
par contre, une fois dans ta fonction, rien ne t'empèche d'utiliser la notation "classique" du tableau tableau[1], etc...
Pourquoi ne pas essayer ceci, car je ne comprends pas pourquoi ton float est avant le main() !
Et puis tu a oublier les accolades dans ta boucle for
#include <stdio.h>
#define NOTE 3
int main()
{
float moyenne(float tableau[NOTE]);
float tableau[NOTE];
int i;
for(i = 0; i < NOTE; i++)
{
puts("Entrez une note ");
scanf("%f", &tableau[i]);
}
moyenne = tableau [0] + tableau [1] + tableau [2] / 3;
printf("la moyenne est de %.2f\n", moyenne);
return 0;
}
lol Nabla's merci pour la correction !
Et puis tu a oublier les accolades dans ta boucle for
#include <stdio.h>
#define NOTE 3
int main()
{
float moyenne(float tableau[NOTE]);
float tableau[NOTE];
int i;
for(i = 0; i < NOTE; i++)
{
puts("Entrez une note ");
scanf("%f", &tableau[i]);
}
moyenne = tableau [0] + tableau [1] + tableau [2] / 3;
printf("la moyenne est de %.2f\n", moyenne);
return 0;
}
lol Nabla's merci pour la correction !
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
404
16 févr. 2010 à 15:48
16 févr. 2010 à 15:48
prend l'habitude de faire un printf pour voir la valeur de tes variables (pour les dépassement de capacité ou une valeur null alors qu'elle ne devrai pas l'être
Oui ba c'est ba là que je ne comprends pas pourquoi ceci est en dehors du main...
float moyenne(float tableau[NOTE]);
Je ne suis pas super calé en C mais on doit définir les float dans le main non ??
oui j'ai oublier un "float moyenne;" en dessous du "int i;"
float moyenne(float tableau[NOTE]);
Je ne suis pas super calé en C mais on doit définir les float dans le main non ??
oui j'ai oublier un "float moyenne;" en dessous du "int i;"
Prend l'habitude de faire un printf pour voir la valeur de tes variables (pour les dépassement de capacité ou une valeur null alors qu'elle ne devrai pas l'être
garion c'est ce que je fais j'utilise puts() quand on a pas besoin d'utiliser les variable et printf() quand je veux utiliser une variable.
float moyenne(float tableau[NOTE]);est un prototype il doit être placer au début et il signifie que la fonction moyenne est placer en dehors de la fonction principale main()
pourquoi tu ne défini pas tout simplement
float tableau[3];
float moyenne;
Si tu sais par avance qu'il y aura 3 notes !???
float tableau[3];
float moyenne;
Si tu sais par avance qu'il y aura 3 notes !???
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
16 févr. 2010 à 16:01
16 févr. 2010 à 16:01
de toute facon, il faudra bien qu'il vienne à une allocation dynamique du tableau, avec un
int taille = 3;
float * tableau = new float[taille];
int taille = 3;
float * tableau = new float[taille];
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
404
16 févr. 2010 à 16:05
16 févr. 2010 à 16:05
c'est la déclaration d'un tableau je crois (ou d'une collection)
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
404
16 févr. 2010 à 16:12
16 févr. 2010 à 16:12
ben si, ca dis que la variable tableau sera un tableau de type float (faut attendre que nabla soit là pour des explications)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
16 févr. 2010 à 16:52
16 févr. 2010 à 16:52
je repasserai plus tard expliquer, j'ai du boulot.
mais en gros, essayes ca (ca plante, c'est normal)
int note= 3;
float tableau[note];
là il gueule parce que ton tableau n'est pas créé à l'execution, mais bien à la compilation, et donc t'as pas le droit de faire passer sa taille par une variable. Mais le principe est corect.
alors que si tu fais
int note= 3;
float *tableau= new float[note];
ca fait ce que tu voulais faire au dessus, mais le tableau est créé à l'execution. Donc tu peux demander combien de notes la personne veut saisir, stocker ca dans note, et ensuite executer ton code.
mais en gros, essayes ca (ca plante, c'est normal)
int note= 3;
float tableau[note];
là il gueule parce que ton tableau n'est pas créé à l'execution, mais bien à la compilation, et donc t'as pas le droit de faire passer sa taille par une variable. Mais le principe est corect.
alors que si tu fais
int note= 3;
float *tableau= new float[note];
ca fait ce que tu voulais faire au dessus, mais le tableau est créé à l'execution. Donc tu peux demander combien de notes la personne veut saisir, stocker ca dans note, et ensuite executer ton code.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
>
anthony
16 févr. 2010 à 21:42
16 févr. 2010 à 21:42
de rien. Tu verras par la suite, quand tu auras bien appris à utiliser les pointeurs, qu'il est souvent nécessaire de déclarer tes tableaux avec un new.
Si tu as un problème, n'hésites pas à demander ;)
Si tu as un problème, n'hésites pas à demander ;)
16 févr. 2010 à 15:41
par contre, il faut que tu trouves un moyen pour que chaque fonction connaisse la taille maximum (pour pas sortir du tableau, ce qui arrive souvent en C).
dans ton cas, c'est la variable pré processée "NOTE " qui evite le débordement. (ce qui indique que tu en es à tes premiers essais avec les tableaux ) ;)
16 févr. 2010 à 15:43