Jump to content
namster

Calculer moyenne valeur des mes tableau

Recommended Posts

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+

Edited by namster

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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...

Edited by namster

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites
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;
}

Share this post


Link to post
Share on other sites

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 .

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@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) .

Share this post


Link to post
Share on other sites
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 .

Share this post


Link to post
Share on other sites

@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;
}

  • Like 1

Share this post


Link to post
Share on other sites
@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

Share this post


Link to post
Share on other sites

@ 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.

Share this post


Link to post
Share on other sites
Merci Kho,Mais Alors Comment Faire Pour Stocker Le Return et l'afficher Dans Un Printf

 

comme ça:

  long moyennef=moyenneTableau(tableau,4);

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

#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 :)

Share this post


Link to post
Share on other sites

Edite:Je croit que je vais arreté la programmation EN C pour le moment

 

si tu abandonnes matwelich sahbi lol

Edited by mouradski
  • Like 1

Share this post


Link to post
Share on other sites

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

Edited by namster

Share this post


Link to post
Share on other sites
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 ?

  • Like 1

Share this post


Link to post
Share on other sites
#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 :D

  • Like 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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;
}

Share this post


Link to post
Share on other sites
J'utilise CODE::BLOCK Cet Bon J'ai Ajouté -std=c99 :o

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++ :)

  • Like 1

Share this post


Link to post
Share on other sites

@ namster ;

n'abandonne pas maintenant . On est ici pour t'aider et comme dit la chanson

haba haba
  • Like 1

Share this post


Link to post
Share on other sites
@ 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 ;)

Edited by namster

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • Histoire est claire sur ce point : la légende des musulmans fanatiques s'abattant sur le monde imposant l'Islam, à la pointe de l'épée, aux peuple vaincus est un des plus fantastiques et absurdes mythes que les historiens ont pu répéter” Lacy O'Leary (Historien) dans “Aux carrefours de l'Islam” p. 28. Un autre témoignage ? Dans “Le déclin et la chute de l'Empire Romain”, Edouard Gibbon - célèbre historien - dit:”le succès phénoménal de l'Islam est dû au caractère exceptionnel de sa spiritualité et de son programme social et politique. L'expansion de l'Islam est l'une des plus grandes révolutions de l'histoire...” Puis un autre de Ignacio Olagüe ( “Les arabes n'ont jamais envahi l'Espagne” chez Flammarion ) : “Comment une poignée de nomades, venus du fond de l'Arabie, auraient-ils pu imposer leur langue et la loi de l'Islam aux quinze millions d'habitants vivant sur les 600 000 kilomètres carrés de la Péninsule Ibérique ?” Laissez le soin à nos détracteurs de répondre... Les mêmes témoignages existent pour l'Inde, l'Europe Orientale, l'Asie...La liste serait fort longue... Ensuite il y a des pays où nul soldat musulman n'a posé le pied: Indonésie (100 millions de musulmans), Malaisie, Afrique etc... où un pourcentage très élevé de ces populations est musulman. Où est l'épée? De nos jours, oui, de nos jours, l'Islam est la seule religion en très large expansion, et les musulmans n'ont pas d'épée! Contrairement à l'Occident, les pays musulmans n'ont envahi aucun pays souverain depuis 1000 ans. Mais l'Islam progresse dans les cœurs, grâce à la cohérence, à la vérité, à la sagesse de son message. C'est tout. Mais nous dira t-on les musulmans ont bien commencé par être des agresseurs pour pouvoir conquérir tous ces territoires christianisés, par principe hostiles à l'Islam naissant. Il y a les mythes et il y a l'histoire. Attachons nous à l'histoire, et non aux mythes. Bien avant sa mort, le prophète avait envoyé des ambassadeurs de par le monde, pour inviter les grands empereurs d'alors vers l'Islam. Certains les ont bien accueilli et se sont convertis, d'autres ont refusé et ont payé un tribut. D'autres encore comme l'empereur de Byzance, les ont rejeté, et ce dernier a été jusqu'à faire assassiner l'ambassadeur de prophète, sans raison, ni excuse! Cela donc contribua à déclencher la guerre entre cette “superpuissance” d'alors et les musulmans. Ces derniers ne sont donc nullement responsables du début des hostilités entre chrétiens et musulmans. Hostilités dont ils sortirent grand vainqueurs. Et même alors, les musulmans n'imposèrent nullement leur foi aux pays conquis. Ils accordèrent aux juifs et aux chrétiens de ces pays un statut de protégé (“Dhimmi”) de l'état islamique, garantissant leurs biens, leurs églises ou synagogues, et bien sûr leur culte. Car la religion repose sur la foi et la volonté. Elle n'aurait aucun sens autrement. La force permet les conquêtes, pas les conversions! Pourquoi filtrer l'Histoire? Souvenons-nous par exemple, du Concile de 680 à Constantinople, capitale de l'empire romain. Durant ce Concile il fut décidé d'une déclaration de guerre totale à l'Islam, dont les buts affichés, sans ambiguïté, étaient de faire disparaître l'Islam, le Coran, les enseignements du “prophète hérétique” et d'exterminer tous les musulmans de la surface de la terre! Charité chrétienne... À comparer aux statuts privilégiés accordés par les musulmans aux chrétiens...Et cet appel chrétien au génocide a perduré jusqu'aux grandes guerres coloniales (voir infra), pour imposer leur conception de la “civilisation” à l'ensemble de ces peuples “barbares” souvent musulmans. Et nous savons tous les dizaines de millions de morts que cet “apport de civilisation” a justifié! Quoiqu'il en soit, croyez-vous qu'un homme seul, puis ensuite, la poignée d'homme qui a dû émigrer à Médine à cause des persécutions mecquoises aient pu imposer l'Islam aux peuples d'Arabie et d'ailleurs? Seul un miracle le pouvait. Et le miracle fut. Seule la haine aveuglante des adversaires de Mohammad (PBSL) peut expliquer cet acharnement à renier des faits historiquement indéniables, les travestissant à loisir pour pouvoir répandre ce qui leur sied. Ne peuvent-ils pas voir que la “seule épée” que brandissait Mohammad (PBSL) c'était l'épée de sa foi en l'unicité de Dieu, de la Miséricorde divine, de la compassion, de la sagesse d'un prophète de Dieu ? Celle-là même qui vainc et convainc l'ennemi en purifiant les mœurs, purifiant les cœurs. Il faut inviter tous ceux qui affirment que dans le passé, un peuple, ait été contraint d'embrasser l'Islam, d'en amener UNE preuve d'une source historiquement fiable, et dont l'auteur puise l'information d'autres choses que du postulat de sa conviction personnelle. Fausse accusation de médias: l'Islam s'est propagé par la Force-Zakir Naik https://www.youtube.com/watch?v=Hf6flYTbP0c    
    • C'est pour les entreprises, et il devrait changer d'hébergeur, le site est trop lent.
    • juste une anecdote : je suis passé chez LG pour demander quand arrivera "la gamme 2020 TV"; vu que dans les autres pays du monde c'est deja dispo, y compris le maroc...et voici sa réponse: "wallah ya kho aucune idée....rak deja mlih que tu trouves la gamme 2019 en ALGERIE avec tous les problemes li kayen" ma reaction: 😵......😬    
    • j'ai posé cette question dans un autre topic qu'un gars a ouvert, mais il ne m'a jamais répondu.... donc je relance ici, peut etre que j'aurai plus de chance: 1- y a t-il en ALGERIE un representant/distributeur officiel de la marque TCL ?  en esperant avoir une réponse
    • je relance ce topic mort...avec zaama la "nouvelle revolution en ALGERIE" - paiement exclusivement via les cartes ! pas de cash !  https://corposmart.com.dz/  
×
×
  • Create New...