namster Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 (modifié) Salut, voila Je Voudrait résoudre un petit Exercice Ou je doit calculé la moyenne de LA valeur de mes tableau #include #include double moyenneTableau(long tableau[], long tailleTableau); int main() { long tableau[4]={47,54,354,21}; long moyenne=0; moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id",moyenne); system("PAUSE"); return 0; } double moyenneTableau(long tableau[], long tailleTableau) { long somme1=0; long somme2=0; long somme3=0; long somme4=0; somme1=tableau[0]; somme2=tableau[1]; somme3=tableau[2]; somme4=tableau[3]; long moyenne=0; moyenne=somme1+somme2+somme3+somme4/4; return moyenne; } le probléme cet que elle me donne un résultat erroné 0,au lieu de 119 a+ Modifié le 31 décembre 2010 par namster Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Slown Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Le type double est un type flottant (nombre réel). Le type long est un type entier (nombre entier naturel relatif). La fonction moyenneTableau doit donc retourner un long vu que t'as déclaré moyenne comme long long moyenneTableau(long tableau[], long tailleTableau) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 (modifié) Merci Mais J'ai Toujours le Mémé Problème,Bon Voila je viens d'éditer Le Script Bon Je Croit que le problème viens lors du return #include #include long moyenneTableau(long tableau[], long tailleTableau); int main() { long tableau[4]={47,54,354,21}; long moyennef=0; moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id\n",moyennef); system("PAUSE"); return 0; } long moyenneTableau(long tableau[], long tailleTableau) { long somme1=0; long somme2=0; long somme3=0; long somme4=0; somme1=tableau[tailleTableau-4]; somme2=tableau[tailleTableau-3]; somme3=tableau[tailleTableau-2]; somme4=tableau[tailleTableau-1]; long moyenne=0; long moyennef=0; moyenne=somme1+somme2+somme3+somme4; moyennef=moyenne/4; printf("la moyenne des valeurs est %Id\n",moyennef); return moyennef; } la moyenne des valeurs est 119 la moyenne des valeurs est 0 Appuyez sur une touche pour continuer... Modifié le 31 décembre 2010 par namster Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Slown Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Je ne vois pas pourquoi t'as ajouté cette ligne : double moyenneTableau(long tableau[], long tailleTableau); avant le main. T'as déclaré la fonction en dessous Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 Je ne vois pas pourquoi t'as ajouté cette ligne : double moyenneTableau(long tableau[], long tailleTableau); avant le main. T'as déclaré la fonction en dessous Euh,Parsque sur l'exercice il mes demandé d'utiliser se prototype mais bon je trouve pas le problème lors du Return #include #include long moyenneTableau(long tableau[], long tailleTableau); long moyenneTableau(long tableau[], long tailleTableau) { long somme1=0; long somme2=0; long somme3=0; long somme4=0; somme1=tableau[tailleTableau-4]; somme2=tableau[tailleTableau-3]; somme3=tableau[tailleTableau-2]; somme4=tableau[tailleTableau-1]; long moyenne=0; long moyennef=0; moyenne=somme1+somme2+somme3+somme4; moyennef=moyenne/4; printf("la moyenne des valeurs est %Id\n",moyennef); return moyennef; } int main() { long tableau[4]={47,54,354,21}; long moyennef=0; moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id\n",moyennef); system("PAUSE"); return 0; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Euh,Parsque sur l'exercice il mes demandé d'utiliser se prototype mais bon je trouve pas le problème lors du Return #include #include long moyenneTableau(long tableau[], long tailleTableau); long moyenneTableau(long tableau[], long tailleTableau) { long somme1=0; long somme2=0; long somme3=0; long somme4=0; somme1=tableau[tailleTableau-4]; somme2=tableau[tailleTableau-3]; somme3=tableau[tailleTableau-2]; somme4=tableau[tailleTableau-1]; long moyenne=0; long moyennef=0; moyenne=somme1+somme2+somme3+somme4; moyennef=moyenne/4; printf("la moyenne des valeurs est %Id\n",moyennef); return moyennef; } int main() { long tableau[4]={47,54,354,21}; long moyennef=0; moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id\n",moyennef); system("PAUSE"); return 0; } le probmème de ta moyenne, je l'ai répondu hier ici , la division en c est particulière, si tu veux que le résultat soit réel (float) il faut que les deux arguments soient réel . Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 Et Quesque sa veut dire un arguments réel ?,Mais Le problème n'est pas sur la devisions mais sur le return essaye le scripte chez toi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 @namster dans cette portion de code : long moyennef=0; moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id\n",moyennef); ici tu as déclarer un nouvelle variable "moyennef" et tu l'as initialiser par 0 , puis tu veyx afficher cette variable dans printf le résultat de l'affichage est clair et net égal à 0. pourquoi ça c'est ta question non ? la variable "moyennef" dans la fonction moyenne tableau est une variable locale (c'est une variable comme les autres mais sont utilisation est seulement dans la fonction ou le bloc du code ou tu l'as déclaré , c-a-d hors cette fonction ou ce bloc du code elle n'existe pas) . Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Et Quesque sa veut dire un arguments réel ?,Mais Le problème n'est pas sur la devisions mais sur le return essaye le scripte chez toi oui, je sait ou est le problème je t'ai répondu dans le message d'avant. je croit que tu doit réécrire le programme . Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 @namster essaye ça : #include #include long moyenneTableau(long tableau[], long tailleTableau); long moyenneTableau(long tableau[], long tailleTableau) { long somme1=0; long somme2=0; long somme3=0; long somme4=0; somme1=tableau[tailleTableau-4]; somme2=tableau[tailleTableau-3]; somme3=tableau[tailleTableau-2]; somme4=tableau[tailleTableau-1]; long moyenne=0; long moyennef=0; moyenne=somme1+somme2+somme3+somme4; moyennef=moyenne/4; printf("la moyenne des valeurs est %Id\n",moyennef); return moyennef; } int main() { long tableau[4]={47,54,354,21}; long moyennef=moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id\n",moyennef); system("PAUSE"); return 0; } 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 @namster dans cette portion de code : long moyennef=0; moyenneTableau(tableau,4); printf("la moyenne des valeurs est %Id\n",moyennef); ici tu as déclarer un nouvelle variable "moyennef" et tu l'as initialiser par 0 , puis tu veyx afficher cette variable dans printf le résultat de l'affichage est clair et net égal à 0. pourquoi ça c'est ta question non ? la variable "moyennef" dans la fonction moyenne tableau est une variable locale (c'est une variable comme les autres mais sont utilisation est seulement dans la fonction ou le bloc du code ou tu l'as déclaré , c-a-d hors cette fonction ou ce bloc du code elle n'existe pas) . Merci Kho,Mais Alors Comment Faire Pour Stocker Le Return et l'afficher Dans Un Printf Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 @ namster une suggestion , tu doit lire un peu sur les variables locales et globales et sur les arguments . SVP , si tu veux avoir une bonne base. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Merci Kho,Mais Alors Comment Faire Pour Stocker Le Return et l'afficher Dans Un Printf comme ça: long moyennef=moyenneTableau(tableau,4); Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 merci Kho Euh Je sait A peut Prés Cet Quoi Une Variable Local Est Global Mais Bon Je Ne Comprend pas Ou Je Me suis Trompé Edite:Je croit que je vais arreté la programmation EN C pour le moment je vais l'aisser sa de coté nchallah aprés Le BEM J'y retournerait Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 #include #include double moyenneTableau(const long* tableau, long tailleTableau); int main() { long tableau[4]={47,54,354,21}; printf("la moyenne des valeurs est %f",moyenneTableau(tableau,4)); system("PAUSE"); return 0; } double moyenneTableau(const long* tableau, long tailleTableau) { long somme=0; for (int i=0;i { somme += tableau[i]; } return somme/tailleTableau; } pourquoi ne pas faire simple Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 (modifié) Edite:Je croit que je vais arreté la programmation EN C pour le moment si tu abandonnes matwelich sahbi lol Modifié le 31 décembre 2010 par mouradski 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 (modifié) pourquoi ne pas faire simple Parsque Il Faut Faire Se Que L'exercice Me Demande A+ Ps:Je vais arrête la programmation EN C pour le moment je vais laisser sa de coté nchallah aprés Le BEM J'y retournerait:) Mdr Ghir l'abandon li ma ndirhach Modifié le 31 décembre 2010 par namster Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Parsque Il Faut Faire Se Que L'exercice Me Demande Je voulais dire faire comme le bout de code que j'ai posté, tu as la variable TailleTableau donc tu l'exploite dans ta fonction au lieu de créer 4 variable t'as essayé le code que j'ai posté en haut ? 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Slown Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 #include #include double moyenneTableau(const long* tableau, long tailleTableau); int main() { long tableau[4]={47,54,354,21}; printf("la moyenne des valeurs est %f",moyenneTableau(tableau,4)); system("PAUSE"); return 0; } double moyenneTableau(const long* tableau, long tailleTableau) { long somme=0; for (int i=0;i { somme += tableau[i]; } return somme/tailleTableau; } pourquoi ne pas faire simple Impeccable 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 Oui Kho Je L'ai essayé et il Marche Pas 'for' loop initial declarations are only allowed in C99 mode use option -std=c99 or -std=gnu99 to compile your code Edit:Cet Bon Il marche Impec Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 Oui Kho Je L'ai essayé et il Marche Pas 'for' loop initial declarations are only allowed in C99 mode use option -std=c99 or -std=gnu99 to compile your code tu utilises quel compilateur ? car chez moi ça marche et ça donne le bonne résultat mais c'est pas grave, il suffit juste de déclarer "int i" en dehors de la boucle for comme suit : #include #include double moyenneTableau(const long* tableau, long tailleTableau); int main() { long tableau[4]={47,54,354,21}; printf("la moyenne des valeurs est %f",moyenneTableau(tableau,4)); system("PAUSE"); return 0; } double moyenneTableau(const long* tableau, long tailleTableau) { long somme=0; int i; for (i=0;i { somme += tableau[i]; } return somme/tailleTableau; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 J'utilise CODE::BLOCK Cet Bon J'ai Ajouté -std=c99 A+ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 J'utilise CODE::BLOCK Cet Bon J'ai Ajouté -std=c99 A+ Content pour toi n'hésite pas à revenir en cas de soucis et ne t'inquiète pas, comme t'es en BEM, d'ici la terminale nchalah tu sera un expert en C\C++ 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
diegol Posté(e) le 31 décembre 2010 Share Posté(e) le 31 décembre 2010 @ namster ; n'abandonne pas maintenant . On est ici pour t'aider et comme dit la chanson haba haba 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
namster Posté(e) le 31 décembre 2010 Auteur Share Posté(e) le 31 décembre 2010 (modifié) @ namster ; n'abandonne pas maintenant . On est ici pour t'aider et comme dit la chanson haba haba Qui as dit que n'allait abandonné kho,J'ai Dit Que Je Vait le Laisser La Programmation De Coté Et J'y Retournerait Nchallah Âpres le BEM Modifié le 31 décembre 2010 par namster Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.