[C] Fonction et tableaux
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

[C] Fonction et tableaux



  1. #1
    invite3f95ae44

    [C] Fonction et tableaux


    ------

    Bonjour,

    J'ai du mal a saisir le fonctionnement de ce duo, j'ai essayé de crée un programme qui calcul la moyenne,
    avec une fonction mais ça ne fonctionne pas.

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int tab[5]={5,12,7,19,9};
        int i;
        printf("la moyenne est de %d \n",moyenne(tab[5]);
    
        return(0);
    }
    
    int moyenne(int tab[5])
        {
        int i, n=5,tab[i],som,resultat;
    
            for(i=0;i<n;i++)
            {
                som=som+tab[i];
            }
            resultat=som/n;
            return(resultat);
        }

    Merci d'avance pour l'aide.

    -----

  2. #2
    invite765732342432
    Invité

    Re : [C] Fonction et tableaux

    Qu'est-ce qui ne marche pas ?
    A part un parenthèse manquante dans le printf, som qui n'est pas initialisée, et une moyenne calculée en int ?

  3. #3
    PA5CAL

    Re : [C] Fonction et tableaux

    Bonsoir

    Le code suivant a certainement plus de chances de fonctionner :
    Code:
    #include <stdio.h>
    
    int tab[] = { 5, 12, 7, 19, 9 };
    
    int main()
    {
        printf( "La moyenne est de %d \n", moyenne(tab) );
        return 0;
    }
    
    int moyenne(int *tab)
    {
        int i;
        int som = 0;
        for (i=0; i<5; i++)
            som = som+tab[i];
        return som/n;
    }
    Dernière modification par PA5CAL ; 18/12/2011 à 20h34.

  4. #4
    PA5CAL

    Re : [C] Fonction et tableaux

    Oups... il faut lire " return som/5; " à la fin.


    Remarque hors sujet : il faudrait sérieusement penser à rallonger le délai limite d'édition des posts. C'est d'autant plus nécessaire que, compte tenu du manque de réactivité du site, il me faut souvent plus de deux minutes pour pouvoir accéder de nouveau à la page de la discussion. J'ai généralement tout juste le temps de trouver une ou deux erreurs et de les corriger dans la précipitation. Et si j'en refais d'autres à cette occasion ou si j'en redécouvre ensuite, il est déjà trop tard pour faire les modifications qui s'imposent.
    Dernière modification par PA5CAL ; 18/12/2011 à 20h49.

  5. A voir en vidéo sur Futura
  6. #5
    invite2d7144a7

    Re : [C] Fonction et tableaux

    Bonjour,

    La solution réside en toi : ne pas te précipiter pour envoyer ta réponse avant de l'avoir relue et corrigée ...

    ... ça évite d'avoir à se précipiter ensuite.

  7. #6
    PA5CAL

    Re : [C] Fonction et tableaux

    Citation Envoyé par whoami Voir le message
    La solution réside en toi : ne pas te précipiter pour envoyer ta réponse avant de l'avoir relue et corrigée ...
    D'une part la participation à ce forum est très loin d'être la seule activité à laquelle je consacre mon temps disponible, lequel n'est pas illimité.

    D'autre part, l'éditeur n'est pas d'une clarté irréprochable, en plus de ne pas être wysiwyg, ni sur PC ni sur Mac. Les erreurs dont je ne m'aperçois pas à la première relecture ont toutes les chance de ne pas être découvertes à la seconde. Je ne les vois généralement qu'une fois le message posté et affiché différemment.

    La réaction précipitée due aux problèmes récurrents d'accès au site (délais interminables, erreurs du serveur, ...) mène aussi à faire de nouvelles erreurs au moment de la correction, erreurs qui n'auront parfois pas le temps d'être re-corrigées ensuite.


    Bref, la rédaction de mes réponses s'avère très nettement plus embêtante ici que sur les autres forums auxquels je participe. C'est pénible, et j'ai de bonnes raisons de trouver que cette situation est anormale.

    Si je dois m'embête encore deux fois plus et passer deux fois plus de temps pour écrire des messages corrects, je pourrais tout aussi bien éviter ce gaspillage en consacrant plutôt ce temps à deux ou trois autres forums qui, eux, ne me posent pas ces problèmes.

    Je réclame un rallongement du délai ou une amélioration des réponses du serveur. Si ça se fait bien ailleurs, ça devrait aussi être possible ici.
    Dernière modification par PA5CAL ; 18/12/2011 à 21h36.

  8. #7
    invite4492c379

    Re : [C] Fonction et tableaux

    Tu as déjà essayé le mode avancé/prévisualisation ?
    Sinon ok pour augmenter la réactivité du site aux heures de pointe ...

  9. #8
    invite4492c379

    Re : [C] Fonction et tableaux

    Citation Envoyé par bouri76 Voir le message
    Bonjour,

    J'ai du mal a saisir le fonctionnement de ce duo, j'ai essayé de crée un programme qui calcul la moyenne,
    avec une fonction mais ça ne fonctionne pas.
    (...)

    Merci d'avance pour l'aide.
    Hello,

    il faudrat être beaucoup moins vague qu'un «ça ne fonctionne pas»

    Un bon début est de dire quand ça ne fonctionne pas (compilation, exécution), avec quel compilateur et sur quelle plateforme tu travailles, etc.

    De plus une simple compilation te donne une liste d'erreurs :

    Citation Envoyé par GCC
    bouri76.c: In function ‘main’:
    bouri76.c:9:52: error: expected ‘)’ before ‘;’ token
    bouri76.c:9:65: error: expected ‘;’ before ‘}’ token
    bouri76.c: In function ‘moyenne’:
    bouri76.c:13:16: error: ‘tab’ redeclared as different kind of symbol
    bouri76.c:11:19: note: previous definition of ‘tab’ was here

    généralement un expected signale un caractère attendu mais non trouvé ... ça aide déjà pas mal ...
    le debuggueur est un outil appréciable aussi

    et c'est tellement agréable de voir quelqu'un qui cherche et que l'on peut aider plutôt que de se faire considérer comme une simple outil de debuggage en ligne.

  10. #9
    invite2d7144a7

    Re : [C] Fonction et tableaux

    Bonjour,
    Citation Envoyé par photon57 Voir le message
    Tu as déjà essayé le mode avancé/prévisualisation ?
    Sinon ok pour augmenter la réactivité du site aux heures de pointe ...
    +1 pour les deux points, mais surtout le 1er pour le cas de PA5CAL.

  11. #10
    PA5CAL

    Re : [C] Fonction et tableaux

    Citation Envoyé par photon57 Voir le message
    Tu as déjà essayé le mode avancé/prévisualisation ?
    Oui, et je le faisais régulièrement jusque récemment.

    Sauf qu'avec les problèmes récurrents d'accès au site, le seul fait de passer dans ce mode ou de mettre à jour la prévisualisation multiplie les risques de perdre tout le texte déjà tapé, parce que le rafraîchissement de la page aboutit souvent à une erreur irrécupérable ou au réaffichage inexpliqué de la page d'origine. Déjà que je ne suis pas certain que le texte arrive sur le serveur après avoir cliqué sur « Envoyer », la page ne se réaffichant pas toujours, ou que très tardivement...

    C'est d'autant plus rageant que je n'ai ce problème que sur ce site.


    Par exemple, ce post, j'ai dû le taper deux fois, car la première fois il avait disparu juste après son envoi.

    Tu peux t'imaginer l'état de mes nerfs quand je m'aperçois que j'ai perdu vingt minutes de mise en forme de formules LATEX...
    Dernière modification par PA5CAL ; 18/12/2011 à 22h52.

  12. #11
    invite4492c379

    Re : [C] Fonction et tableaux

    C'est vrai que cela m'est déjà arrivé aussi, quand je remarque des lenteurs j'ai pris l'habitude de faire un ctrl-c du message juste au cas où. C'est dommage que j'en sois réduit à ça ... mais les problèmes sont relativement rares heureusement (sauf en heure de pointe).

    Pauvre bouri76 ... on lui a pourri son fil avec nos HS

  13. #12
    invite1445654e

    Re : [C] Fonction et tableaux

    moi je dirais que bouri76 aurait mieux fait de regarder son cours ou d'ouvrir un tuto sur l'utilisation des tableaux avec des fonctions et il aurait peut etre compris qu'un tableau n'est rien d'autre qu'une zone memoire avec une adresse et une longueur ...

  14. #13
    PA5CAL

    Re : [C] Fonction et tableaux

    Et crac ! J'ai encore perdu mon post :
    Nom : errFS.png
Affichages : 49
Taille : 33,9 Ko

    Citation Envoyé par photon57 Voir le message
    Pauvre bouri76 ... on lui a pourri son fil avec nos HS
    Certes, et je m'en excuse... mais on le lui a aussi bien fait avancer.

    Pour me faire pardonner, voici un résumé des erreurs caractérisées qui sont présentes dans le code :


    D'une part, dans :
    Code:
        printf("la moyenne est de %d \n",moyenne(tab[5]);
    -> l'une des parenthèses n'est pas fermée
    -> la valeur passée à la fonction moyenne() est le sixième élément du tableau tab[], or cet élément n'existe pas. Pour rappel, lors de sa déclaration, tab[5] désigne un tableau de cinq éléments indexés de 0 à 4. Lors de l'affectation :
    Code:
        tab[5]={5,12,7,19,9};
    est équivalent à :
    Code:
        tab[0] = 5;
        tab[1] = 12;
        tab[2] = 7;
        tab[3] = 19;
        tab[4] = 9;
    Il faudrait donc au minimum écrire :
    Code:
        printf("la moyenne est de %d \n",moyenne(tab));
    tab désigne le tableau proprement-dit.

    D'autre part, dans :
    Code:
        int i, n=5,tab[i],som,resultat;
    -> le tableau tab, qui apparaît déjà comme argument de la fonction, est redéclaré comme variable locale.

    Il faudrait donc supprimer « tab[i], » dans cette ligne.
    Dernière modification par PA5CAL ; 19/12/2011 à 13h00.

Discussions similaires

  1. tableaux et fonction
    Par invite64056dd8 dans le forum Programmation et langages, Algorithmique
    Réponses: 23
    Dernier message: 22/09/2011, 16h09
  2. Tableaux de Karnaugh
    Par invite703857b4 dans le forum Électronique
    Réponses: 32
    Dernier message: 06/02/2011, 22h32
  3. Tableaux en Latex
    Par invite1d577638 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 27/01/2011, 16h03
  4. Tableaux
    Par invite6f16912e dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 15/10/2010, 18h15