IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

problème de tableaux


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut problème de tableaux
    salut a tous j'ai un problem avec ce code
    j'ai entrain de faire la somme de 4 cases d mais en resultat il affiche une grand nombre (4009944)
    et en rincipe afichie le nombre 44
    aide moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <stdio.h>
    #include <stdlib.h>
     
     
    int sommeTableau(int tableau[], int tailleTableau);
     
     
    int main(int argc, char *argv[])
    {
        int tableaux[4];
         tableaux[0]=2;
         tableaux[1]=3;
         tableaux[2]=4;
         tableaux[3]=5;
     
        return sommeTableau(tableaux,4);
     
     
       }
     
    int sommeTableau(int *tableau, int tailleTableau)
    {
        int i=0;
        for(i=0;i<tailleTableau;i++)
        {
            tableau[i+1]=tableau[i]+tableau[i+1];
        }
     
        return tableau[i+1];
     
           }
    merci

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Bonjour et bienvenue,

    Sachez qu'il y a une balise [ C O D E ] et [ / C O D E ] ( sans les espaces ) sur ce forum ( et ce n'est pas de la science fiction ) qui permette de présenter le code de manière très jolie et très colorée. Un raccourci est de juste cliquer sur le bouton qui ressemble à '#' c'est tout
    Pensez y la prochaine fois

    Sinon pour votre problème, en fait, vous avez un bug, dans le sens, que votre programme devrait crasher ( erreur de segmentation ).

    Effectivement, vous construisez un tableau de 4 cases.
    Dans la fonction sommeTableau() vous faites la somme des valeurs des quatre cases, certes ( bien que je trouve la méthode assez bizarre ), sauf que votre boucle emmène i de 0 à 3.
    Dans la boucle vous avez un 'i+1' qui veut dire, qu'à un certain point, i sera égale à 4. Un PC compte en commançant par zero, et que 4 equivaut à accéder à la 5 ième case du tableau.
    Cette cinquième cases du tableau, vous ne l'avez jamais déclaré, du coup, ici il devrait avoir un bug ( erreur de segmentation ).
    Il n'y en a pas, c'est un hasard / fait. Sauf que cette case à une valeur qui n'est pas déterminé non plus ( souvent c'est la dernière chose qui a été en mémoire, à cette emplacement, mais bref passons, la valeur n'est pas connue ). Du coup, vous ajouté votre résultat à quelque chose d'inconnu et vous le retourner au main. Ce résultat est inconnu est dans la majorité des cas faux.
    Solution possible: ( je ne dis pas que c'est la meilleure, je vous laisse le privilège de faire une recherche pour savoir ce qui est possible )
    - Définir un tableau de 5 cases ( la cinquième contiendra le résultat, comme vous semblez l'avoir prévu )
    - à l'initialisation la cinquième case, doit contenir 0. ( Ceci est un indice très important )

    Voilà, faites votre code, et revenez nous voir pour dire ce qu'il en ai .

    ( Note: Il n'y a aucun piège Vraiment )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    et en rincipe afichie le nombre 44
    Comment arriver à un résultat de 44 ? Je ne comprends pas ce que tu veux faire. Donne-nous plus de précisions.

    Outre ton problème de débordement de tableau, ton algorithme est bizarre (à moins que ce soit voulu) : tu additionnes le premier élément et le second pour mettre le résultat dans ce second élément, puis tu additionnes le second (dont la valeur a été écrasée) et le troisième pour mettre le résultat dans le troisième, etc. Au final, ton tableau contient ces valeurs : 2 5 9 14. Il n'y a de 44 nulle part.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Comment arriver à un résultat de 44 ? Je ne comprends pas ce que tu veux faire. Donne-nous plus de précisions.

    Outre ton problème de débordement de tableau, ton algorithme est bizarre (à moins que ce soit voulu) : tu additionnes le premier élément et le second pour mettre le résultat dans ce second élément, puis tu additionnes le second (dont la valeur a été écrasée) et le troisième pour mettre le résultat dans le troisième, etc. Au final, ton tableau contient ces valeurs : 2 5 9 14. Il n'y a de 44 nulle part.

    wi 14 desoli faut de frap

    mais j'ai arrive pas

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Pourtant je pensais tout bien expliquer.

    Avez vous suivi mes conseils ?

    Qu'est ce que vous n'arrivais pas à faire ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Pourtant je pensais tout bien expliquer.

    Avez vous suivi mes conseils ?

    Qu'est ce que vous n'arrivais pas à faire ?
    normalment y afficher 14 mais il tjrs afficher des gros nombre


    alors commet faire poue connait la somme d'un tableaux

Discussions similaires

  1. [HTML]problème de tableaux imbriqués
    Par tyrann dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 24/03/2006, 15h29
  2. Problème avec tableaux dynamiques et procédure
    Par K20 dans le forum Langage
    Réponses: 11
    Dernier message: 06/01/2006, 20h51
  3. Réponses: 5
    Dernier message: 24/12/2005, 15h40
  4. HTML : problème de tableaux qui se superposent
    Par paprika dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/10/2005, 15h55
  5. [D2005]Problème de tableaux dynamique
    Par Laurent Dardenne dans le forum Delphi .NET
    Réponses: 8
    Dernier message: 26/07/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo