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 menu tri


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut programme menu tri
    j'ai un problème au niveau de l'exécution de tri sélection quelque fois il se bloque ou n'affiche pas résultat
    merci de m'aide

    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
    79
     #include <stdio.h>
    int T[50];
    int n,i,menu;
    int j,pmax,aide,tr,pos;
     
    main ()
    {
         printf("\t\t\t\t****menu de tri****\n\n\n");
         printf("Donnez la longueur du Tableau (max:50):\t");
         scanf("%d",&n);
         printf("\n remplisage de tableau\n\n");
         for(i=0;i<n;i++){printf("valeur de T[%d] : ",i);scanf("%d",&T[i]);}
         do
         {
         printf("\n\n\t\t\t\tentrer votre choix\n\n\n ");
         printf("1:tri par selection \n 2:tri par permutation \n 3:tri par insertion \n 4:quiter \n\n ==> ");
         scanf("%d",&menu);
     
         switch (menu)
         {
                case 1:
                     {
                           for(i=0;i<n-1;i++)
                           {
                                             pmax=i;
                                             for (j=i+1;j<n;j++)
                                             {
                                                             if (T[j]>=T[pmax])  pmax=j; 
                                                             aide=T[i];
                                                             T[i]=T[pmax];              
                                                             T[pmax]=aide;            
                                             }
                           }
                           printf("\n\nvous avez choisis le tri par selection\n\n");
                     }
                     break;
                case 2:
                     {
     
                           do
                           for(i=0;i<n-1;i++)
                           {
    					                     tr=0;
                                             if(T[i]>T[i+1])
                                             {
                                                           aide=T[i];
                                                           T[i]=T[i+1];
                                                           T[i+1]=aide;
    													   tr=1;
                                             }
                           }
                           while(tr!=0);
                           printf("\n\nvous avez choisis le tri par permutation\n\n");
                     }
                     break;
                case 3:
                    {
                           for(i=1;i<n;i++)
                           {
                                           j=i-1;
                                           aide=T[i];
                                           while(j>=0 && T[j]>aide)
                                           {
                                                      T[j+1]=T[j];
                                                      j=j-1;
                                           }
                                           T[j+1]=aide;
                           }
                           printf("\n\nvous avez choisis le tri par insertion\n\n");
                    }
                    break; 
                case 4: return 0;
                }
     
                printf("***tableau est trie***\n");
                for(i=0;i<n;i++) printf("T[%d] = %d    ",i,T[i]);
         }
         while(menu);            
         }

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       for (j=i+1;j<n;j++)
       {
              if (T[j]>=T[pmax])  pmax=j; 
              aide=T[j];
              T[j]=T[pmax];              
              T[pmax]=aide;            
       }
    Ceci étant :
    - supprimer les variables globales. Elles n'ont aucune raison d'être en global.
    - faire un fonction pour chaque mode de tri plutôt que placer tout le code dans main.

Discussions similaires

  1. [Débutant] Programme de tri d'un tableau pour 8086
    Par incontrolable dans le forum x86 16-bits
    Réponses: 0
    Dernier message: 09/05/2010, 05h36
  2. Programme de tri avec fonctions
    Par adri010 dans le forum Débuter
    Réponses: 1
    Dernier message: 02/05/2010, 19h30
  3. Programmation du tri par tas
    Par henry.delapub dans le forum C++
    Réponses: 6
    Dernier message: 26/03/2010, 17h11
  4. Programme de tri par tas
    Par charafzizou dans le forum C++
    Réponses: 2
    Dernier message: 05/01/2010, 11h37
  5. Programme de tri de chaine de caractères
    Par vetchang dans le forum Langage
    Réponses: 1
    Dernier message: 27/05/2008, 18h26

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