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 :

Fonctions & Tableau


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Avatar de shana59
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 17
    Points
    17
    Billets dans le blog
    1
    Par défaut Fonctions & Tableau
    Re bonsoir ,
    Cherchant une maitrise du langage C je m'entraine au fur & à mesure du tutoriel et la je suis confronté à un Soucis enfin aulieu de m'expliquer je pense que c'est plus compréhensible en voyant le code directement
    Ma Fonctions :
    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
    void ordonnerTableau(int tableau[], int tailleTableau)
    {
        int i=0;
        int inter=0;
        for (i=0;i<tailleTableau;i++)
        {
            if (i>0)
            {
               if(tableau[i-1]>tableau[i])
                {
                    inter=tableau[i];
                    tableau[i]=tableau[i-1];
                    tableau[i-1]=inter;
                }
     
            }
     
        }
    }
    Le Tableau envoyé à la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     tableau[0]=16;
        tableau[1]=48;
        tableau[2]=10;
        tableau[3]=50;
    & j'obtient :
    16
    10
    48
    50

    Quelqu'un pourrais m'expliquer pourquoi il ne traite pas le premier élément de mon tableau?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 632
    Points : 10 560
    Points
    10 560
    Par défaut
    Pourquoi il ne traite pas le premier élément de mon tableau?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
               if(tableau[i-1]>tableau[i])
    Si (16 > 48), c'est ton algo qui n'est pas bon.

  3. #3
    Membre à l'essai
    Avatar de shana59
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 17
    Points
    17
    Billets dans le blog
    1
    Par défaut
    if(tableau[i-1]>tableau[i]) // Donc si tableau[0] > tableau[1]
    {
    inter=tableau[i]; // On stock tableau[1] sans la variable inter
    tableau[i]=tableau[i-1]; // On met la valeur de tableau[0] dans tableau[1]
    tableau[i-1]=inter; //On met la valeur de inter dans tableau[0]
    }

    Je comprend pas ou es l'erreur...

    Edit : oui je comprend mieux mais je ne vois pas comment faire autrement car mon FOR lie chaque 1 case par tour

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Pourquoi initialises-tu inter à 0 ?

  5. #5
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 442
    Points
    2 442
    Par défaut
    Hello.

    Si tu initialise i à 0 et que tu fais une action que quand i y est strictement supérieur, autant commencer la boucle à 1 et virer le if, non ?
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  6. #6
    Membre à l'essai
    Avatar de shana59
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 17
    Points
    17
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Daïmanu Voir le message
    Hello.

    Si tu initialise i à 0 et que tu fais une action que quand i y est strictement supérieur, autant commencer la boucle à 1 et virer le if, non ?
    Oui certe sa fait des lignes en moin mais bon la le problème viens de l'algorithme

  7. #7
    Membre à l'essai
    Avatar de shana59
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 17
    Points
    17
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par valkheim Voir le message
    Pourquoi initialises-tu inter à 0 ?
    J'aime bien que mon code soit organiser et donc avec chaque variable initialiser a 0 des le debut du projet enfin je ne comprend pas pourquoi cet question sa n'influence en rien la fonction

  8. #8
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    C'est un problème relatif à l'algorithmique plus qu'à l'implémentation. Ton programme doit recommencer à parcourir le tableau du début jusqu'à ce qu'aucune nouvelle permutation n'aie lieu. En l'état il n'effectue qu'un seul parcours.

    Le tri est une discipline de science informatique à part entière, je te recommande de te renseigner sur la myriade d'algorithmes existants afin d'en apprendre davantage.

  9. #9
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Citation Envoyé par shana59 Voir le message
    Re bonsoir ,
    Cherchant une maitrise du langage C je m'entraine au fur & à mesure du tutoriel et la je suis confronté à un Soucis enfin aulieu de m'expliquer je pense que c'est plus compréhensible en voyant le code directement
    Ma Fonctions :
    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
    void ordonnerTableau(int tableau[], int tailleTableau)
    {
        int i=0;
        int inter=0;
        for (i=0;i<tailleTableau;i++)
        {
            if (i>0)
            {
               if(tableau[i-1]>tableau[i])
                {
                    inter=tableau[i];
                    tableau[i]=tableau[i-1];
                    tableau[i-1]=inter;
                }
     
            }
     
        }
    }
    Le Tableau envoyé à la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     tableau[0]=16;
        tableau[1]=48;
        tableau[2]=10;
        tableau[3]=50;
    & j'obtient :
    16
    10
    48
    50

    Quelqu'un pourrais m'expliquer pourquoi il ne traite pas le premier élément de mon tableau?
    Ta fonction n'est pas une fonction de tri : tu as un problème d'algorithme ici. C'est juste ton jeu de données qui est mal foutu et qui te fait croire que seul le premier n'est pas traité. Ce que ta fonction fait est : mettre la plus grande valeur contenue dans le tableau à la fin du tableau.

Discussions similaires

  1. fonction et tableau
    Par abdou karim diagne dans le forum C
    Réponses: 5
    Dernier message: 26/03/2007, 02h05
  2. [VBA-E]paramètre fonction et tableau
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2007, 09h56
  3. [Tableaux] fonction et tableau
    Par vacknov dans le forum Langage
    Réponses: 7
    Dernier message: 23/06/2006, 15h47
  4. Fonctions SQL - Tableau et type anyarray
    Par etiennegaloup dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/11/2005, 12h25
  5. PB fonction et Tableau
    Par T-B dans le forum Langage
    Réponses: 5
    Dernier message: 23/10/2005, 15h03

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