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 :

tri d'un tableau


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut tri d'un tableau
    Bonjour tout le

    notre prof nous a donné une application concernant les tableaux ,

    bien que banale en exécutant le programme j'ai toujours le même problème.

    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
    71
    72
    73
    74
    75
    76
    77
    78
    #include <stdio.h>
     
    #include <stdlib.h>
     
     
     
    int main()
     
    {
     
      int T[100] ;
     
      int i , j , x , n ;
     
      i = 0 ;  //sert de compteur pour la saisie des variables du tableau.
     
      n = 0 ;  //sert à déclarer le nombre de cases
     
     
     
     
     
      printf("veuillez declarer le nombre de case.\n");
     
      scanf("%d",&n);
     
     
     
     
     
    while (i < n)
    	{
     
    	      printf("veuillez saisir la valeur ");
    	      printf("correspondante a l'indice [%d]\n",i);
     
    	      scanf("%d",&T[i]);
     
    	      i++;
     
    	      }
     
    //la 1ere boucle sert à incrémenter le i mais après avoir incrémenter le j
    //de sorte que l'on puisse comparer toutes les case entre elles.
     
     
     
     
    for ( i = 0 ; i < n-1 ; i++ )
      	{
    	   for ( j = i+1 ; j < n ; j++ )
    	  	{
     
    		      if ( T[j] < T[i] )
     
    		      	{	
     
    			      x    = T[i] ;
     
    			      T[i] = T[j] ;
     
    			      T[j] = T[i] ;
     
    						  }
     
    							}
    								}
     
     
    for ( i = 0 ; i < n ; i++ )	  	   		     		
    printf("voici la valeur  T[%d] = %d\n", i , T[i] );
     
     
     
     
      return 0;
     
    }
    le résultat est loin de l'objectif pouvez m'aider svp à trouver l'erreur ?

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut Re:
    T'as pas bien fait la permutation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x = T[i];
    T[i] = T[j];
    T[j] = x;
    A part ca, faut que tu changes ta manière de présenter du code.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    c'est vrai , j'avais trois doc contenant le même code je me suis trompé d'onglet.

    merci merci

    je corrige.

    concernant la présentation de code pourrais tu me dire ce qui ne va pas, j'essaie toujours d'indenter les lignes mais sait on jamais.

  4. #4
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    tu alloues un tableau de 100 entiers puis tu demandes le nombre de cases. Il serait prudent de vérifier que le n rentré par l'utilisateur est bien inférieur à 100. En pratique, j'imagine bien que l'utilisateur de rentrera jamais à la main 100 valeurs, mais c'est une bonne habitude à prendre dès maintenant que de toujours vérifier ce que fait l'utilisateur

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Lequel préfères-tu :
    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
     
    for ( i = 0 ; i < n-1 ; i++ )
      	{
    	   for ( j = i+1 ; j < n ; j++ )
    	  	{
     
    		      if ( T[j] < T[i] )
     
    		      	{
                                        ...
     
    						  }
     
    							}
    								}
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for (i = 0; i < n - 1; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (T[j] < T[i])
            {
                ...
            }
        }
    }

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    c'est vrai je me suis tellement pressé que j'ai sauté pas mal de choses.

    quant au code il est vrai que la seconde dispostion est meilleure (pour ceux qui savent s'en servirent) je suis d'accord.

    est il possible de mettre ce texte dans une fonction qui nous permettrait d'avoir un
    nombre de case théoriquement illimité ?

    merci pour vos réponses.

  7. #7
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par abdelilah
    quant au code il est vrai que la seconde dispostion est meilleure (pour ceux qui savent s'en servirent) je suis d'accord.
    Il faut juste un peu de discipline
    Citation Envoyé par abdelilah
    est il possible de mettre ce texte dans une fonction qui nous permettrait d'avoir un
    nombre de case théoriquement illimité ?
    Ben il suffit que T ne soit pas un tableau, mais int *. Tu demandes toujours à l'utilisateur le nombre n d'entiers qu'il veut trier puis tu alloues la mémoire nécessaire pour stocker ces n entiers. Il ne faut pas oublier de tester le retour de malloc et de libérer la mémoire lorsqu'on n'en a plus besoin.

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    merci pour vos réponse là je peux mettre résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri d'un tableau en 2D
    Par sniperseb dans le forum C
    Réponses: 4
    Dernier message: 05/01/2006, 16h33
  2. Réponses: 6
    Dernier message: 16/09/2005, 10h30
  3. tri d'un tableau à 2 dimensions
    Par dede92 dans le forum C
    Réponses: 4
    Dernier message: 19/02/2005, 18h29
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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