Les differents tri en c
pascal
-
abdelaziz -
abdelaziz -
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;
}
}
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;
}
}
A voir également:
- Les differents tri en c
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Peut on récupérer un colis au centre de tri chronopost - Forum Mobile
- Sandra a décidé de mieux contrôler son image et sa présence sur différents réseaux sociaux. qu’est-il possible de faire sur ces réseaux ? - Forum Facebook
- Différence actif et en ligne messenger ✓ - Forum Facebook
3 réponses
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]);
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;
}
#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;
}