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 :

Programme de tri avec fonctions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Par défaut Programme de tri avec fonctions
    Bonjour,

    J'ai voulu tenter de créer un programme pour trier une série de nombres.

    Je voulais afficher dans un premier temps le vecteur de départ et en dessous le vecteur trié.

    Seulement voila, à l'endroit ou je voulais afficher le vecteur de départ il m'affiche le vecteur trié et la ou je voulais le vecteur trié il m'affiche...n'importe quoi^^

    Que dois-je changer dans mon code pour que cela fonctionne?

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include<stdlib.h>
    #include<stdio.h>
     
    int lecture(int tab[])
    {
        int i;
        i=0;
        printf("veuillez entrer les nombres\n\n");
        do
        {
                         printf("nombre:  ");
                         scanf("%d",&tab[i]);
                         if (tab[i]>0)
                         {
                                      i++;
                         }
                         else if(tab[i]<0)
                         {
                             printf("entree non valide");
                         }
        }
        while (tab[i]!=0);
        return i;
    }
     
    int triselec(int tab[],int i)
    {
         int n,k,max,temp;
         for(n=0;n<=i;n++)
         {
                          max=n;
                          for(k=n+1;k<=i;k++)
                          {
                                             if(tab[k]<tab[max])
                                             {
                                                                max=k;
                                             }
                          }
                          if(max!=n)
                          {
                                    temp=tab[n];
                                    tab[n]=tab[max];
                                    tab[max]=temp;
                          }
         }
         return 0;
    }
     
    void affiche(int tab[],int i,int tabtri[])
    {
         int n;
         for(n=1;n<=i;n++)
         {
                          printf(" %d ",tab[n]);
         }
         printf("\n\n");
         for(n=0;n<=i-1;n++)
         {
                            printf(" %d ",tabtri[n]);
         }
    }
     
    int main()
    {
        int nb,tab[30],tabtri[30],arg;
        nb=lecture(tab);
        arg=triselec(tab,nb);
        affiche(tab,nb,&arg);
        system("pause");
    }
    Merci beaucoup!

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut !

    En fait si on regarde cette ligne de ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int triselec(int tab[],int i)
    On peut s'apercevoir que tu envoies le tableau non-trié à la fonction, fonction qui elle, trie ce tableau sans mettre les éléments triés dans un autre. Voila pourquoi là où les nombres sont sensés être dans l'ordre d'encodage sont triés.

    Ensuite cette ligne dans la fonction triselec ;

    Tu renvoies 0 que tu assignes comme adresse à ce tableau (i think) et tu affiches ce qui se situe à cette adresse, voilà pourquoi il affiche n'importe quoi

    j'espere avoir pu t'aider

    Bye bye

Discussions similaires

  1. Tri avec fonction de comparaison personnalisée (Python 3)
    Par MorganStern dans le forum Général Python
    Réponses: 4
    Dernier message: 28/01/2010, 12h22
  2. [Tableaux] tri tableau avec fonction
    Par ascito dans le forum Langage
    Réponses: 7
    Dernier message: 10/09/2008, 14h21
  3. Programme qui bloque avec fonction sort
    Par ultimate_manx dans le forum SL & STL
    Réponses: 10
    Dernier message: 29/11/2007, 20h06
  4. Tri avec une fonction surchargee
    Par vandamme dans le forum SL & STL
    Réponses: 4
    Dernier message: 28/09/2007, 01h20
  5. Réponses: 1
    Dernier message: 28/08/2007, 19h18

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