Débutant en C : trier tableau ?

Fermé
ninie - 17 oct. 2004 à 14:23
TovoPierre Messages postés 3 Date d'inscription mardi 24 novembre 2015 Statut Membre Dernière intervention 27 novembre 2015 - 27 nov. 2015 à 05:38
Es ce qu'une personne sait comment trier un tableau de valeurs par ordre croissant en langage C ?

car je dois initialiser un tableau de 7 valeurs aléatoires en les triant dans l'ordre croissant ds un meme tableau

merci davance c urgent
A voir également:

16 réponses

offset_0x0ff0
8 déc. 2008 à 23:44
salut,

juste une autre solution. compilé sous linux

exo du www.siteduzero.fr

// une fonction ordonnerTableau qui classe les valeurs d'un tableau dans l'ordre croissant. Ainsi, un tableau qui vaut {15, 81, 22, 13} doit à la fin de la fonction valoir {13, 15, 22, 81} !

#include <stdio.h>


void ordonnerTableau(long tableau[], long tailleTableau);



int main(int argc, char *argv[])
{
long tab[4] = {15,81,22,13};

int i=0;

ordonnerTableau(tab,4);

for(i=0; i<4; i++)
{
printf("%ld\n",tab[i]);
}
return 0;
}

void ordonnerTableau(long tableau[], long tailleTableau)
{
long i,t,k=0;

for(t = 1; t < tailleTableau; t++)
{
for(i=0; i < tailleTableau - 1; i++)
{
if(tableau[i] > tableau[i+1])
{
k= tableau[i] - tableau[i+1];
tableau[i] -= k;
tableau[i+1] += k;
}
}
}
}
23
dudulle93 Messages postés 101 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 26 novembre 2010 62
25 oct. 2010 à 01:14
Salut, désolé de remuer les vieux sujets mais pourrais tu m'expliquer la ligne
for(t = 1; t < tailleTableau; t++)
stp?
car j'ai essayé sans et j'ai vu que les 2 premiers seulement étaient rangé mais j'ai du mal à comprendre... merci :)
0
dudulle93
le for que tu ne comprends pas est une notation élémentaire des boucles for en langage objet.
Donc for(int t=1;t<tailleTableau;t++) signifie:
pour un index de type entier à partir de 1
tant que l'index t est inférieur à la taille du tableau
incrémente t (bien que je préfère la notation ++t)

En globale cela veut dire que tu vas boucler de 1 à la taille du tableau -1, et a chaque boucle tu incrémentes ton compteur t.

J'espère que c'est plus clair pour toi
0
en ajoute quoi pour change se pregramme a une fonction d'un programme si en veux ajoute une valeur comment en peux garde l'ordre croissant
0
#include <stdio.h>
#include <stdlib.h>
void ordonner(int T[],int);

int main(int argc, char *argv[])
{
int T[5]={7,4,5,3,8},i;

ordonner(T,5);
for(i=0;i<5;i++)
{
printf("T[%d]=%d\n",i,T[i]);
}
system("pause");
return 0;
}
void ordonner(int T[],int taille)
{
int i,j,p=0;
for(j=0;j<taille;j++)
{
for(i=0;i<taille;i++)
{
do
{
p=T[i];

T[i]=T[i+1];

T[i+1]=p;

}while(T[i]>T[i+1]);
}
}
}
0