Rechercher : dans
Par :

Les differents tri en c

Dernière réponse le 5 jan 2008 à 23:17:43 pascal, le 22 nov 2007 à 17:49:02 
 Signaler ce message aux modérateurs

Bonjour,
je bloque sur mon programme qui demande à l'utilisateur une série de 20 chiffres maximum et qui les trie en fonction du tri choisi! je bloque sur les tri surtout pour le tri bulle
quelqu'un aurait la solution à mon problème merci

#include <stdio.h>
#include <stdlib.h>
#define MAX 20
void main (void)

{
int v[MAX],cpt,i,j,limite,tri,n,temp;


printf("entrez la limite de nombre a introduire\t");
scanf("%d",&limite);
for(cpt=0;cpt<limite;cpt++)
{
printf("Introduire le %d e element du vecteur :\t", cpt+1);
scanf("%d",&v[cpt]);
}
cpt=limite;

printf("voici les tris possibles dans ce programme\n\t");

printf("tri par extraction (1)\n\t");
printf("tri par insertion (2)\n\t");
printf("tri bulle (3)\n\t");

do{

printf("choisissez votre tri\n");

scanf("%d",&tri);
printf("numero invalide choississez un tri de 1 a 3\n\t");

}while (( tri < 1) || (tri > 3));

switch( tri )
{

case 1: printf("vous avez choisi le tri par extraction");
n=0;
i=0;
while(i<n)
{
j=i+1;
while(j<= n+1)
{
if(v[i] > v[j])
{
v[i]=v[j];
}
j=j+1;
}
i=i+1;
}
for(i=0;i<10;i++)
{
printf("%d\t",v[i]);
}

break;


case 2: printf(" vous avez choisi le tri par insertion");

i=1;
while(i<10)
{
temp=v[i];
j=i-1;
while(j>=0&&v[j]>temp)
{
v[j+1]=v[j];
j=j-1;
}
v[j+1]=temp;
i++;
}
for(i=0;i<10;i++)
{
printf("%d\t",v[i]);
}

break;
case 3: printf("vous avez choisi le tri bulle");



break;




}
}

Configuration: Windows XP
Firefox 2.0.0.9

Meilleures réponses pour « les differents tri en c » dans :
Les structures en langage C Voir Différence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Les variables en C++ VoirLes variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
Tri par fusion - récursivité- VoirVoici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par fusion : Procedure Tri_Fusion (Var t : TAB; g, d : integer); Var m, i, j, k : integer; s : TAB; Begin If d > g Then ...
Protocoles VoirQu'est-ce qu'un protocole? Un protocole est une méthode standard qui permet la communication entre des processus (s'exécutant éventuellement sur différentes machines), c'est-à-dire un ensemble de règles et de procédures à respecter pour émettre et...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

mype, le 22 nov 2007 à 22:22:40

Voici un tri a bulle pour ton programme( n'oublie pas de declare les variable au debut :int changement=1, tps)

    printf("entre les valeurs : \n");
        for(i=0;i<limite;i++)
    scanf("%d",&v[i]);
while(changement){
    changement=0;
        for(i=0;i<(limite-1);i++)
            if(v[i]>v[i+1]){
            tps=v[i];
            v[i]=v[i+1];
            v[i+1]=tps;
            changement=1;}
    }
    for(i=0;i<limite;i++)
        printf("%d",v[i]);

Répondre à mype

2

SINA.L, le 22 nov 2007 à 22:54:43

Ce code fai le trie par sélection du maximum

#include <stdio.h>
main()
{
/* Déclarations */
int A[50]; /* tableau donné */
int N; /* dimension */
int I; /* rang à partir duquel A n'est pas trié */
int J; /* indice courant */
int AIDE; /* pour la permutation */
int PMAX; /* indique la position de l'élément */
/* maximal à droite de A[I] */

/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (J=0; J<N; J++)
{
printf("Elément %d : ", J);
scanf("%d", &A[J]);
}
/* Affichage du tableau */
printf("Tableau donné :\n");
for (J=0; J<N; J++)
printf("%d ", A[J]);
printf("\n");

/* Tri du tableau par sélection directe du maximum. */
for (I=0; I<N-1; I++)
{
/* Recherche du maximum à droite de A[I] */
PMAX=I;
for (J=I+1; J<N; J++)
if (A[J]>A[PMAX]) PMAX=J;
/* Echange de A[I] avec le maximum */
AIDE=A[I];
A[I]=A[PMAX];
A[PMAX]=AIDE;
}

/* Edition du résultat */
printf("Tableau trié :\n");
for (J=0; J<N; J++)
printf("%d ", A[J]);
printf("\n");
return 0;
}

et celui la fai le tri par propagation (bubble sort)

#include <stdio.h>
main()
{
/* Déclarations */
int A[50]; /* tableau donné */
int N; /* dimension */
int I; /* rang à partir duquel A est trié */
int J; /* indice courant */
int AIDE; /* pour la permutation */
int FIN; /* position où la dernière permutation a eu lieu. */
/* permet de ne pas trier un sous-ensemble déjà trié. */

/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (J=0; J<N; J++)
{
printf("Elément %d : ", J);
scanf("%d", &A[J]);
}
/* Affichage du tableau */
printf("Tableau donné :\n");
for (J=0; J<N; J++)
printf("%d ", A[J]);
printf("\n");

/* Tri du tableau par propagation de l'élément maximal. */
for (I=N-1 ; I>0 ; I=FIN)
{
FIN=0;
for (J=0; J<I; J++)
if (A[J]>A[J+1])
{
FIN=J;
AIDE=A[J];
A[J]=A[J+1];
A[J+1]=AIDE;
}
}

/* Edition du résultat */
printf("Tableau trié :\n");
for (J=0; J<N; J++)
printf("%d ", A[J]);
printf("\n");
return 0;
}

Répondre à SINA.L

3

 abdelaziz, le 5 jan 2008 à 23:17:43

Slt, j'adresse à mes amies de m'aider à trouver des programmes des differents tri. et merci.

Répondre à abdelaziz
Collection CommentÇaMarche.net