Rechercher : dans
Par :

Débutant en C : trier tableau ?

Dernière réponse le 13 aoû 2009 à 14:57:10 ninie, le 17 oct 2004 à 14:23:33 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Débutant en C : trier tableau ? » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Inverser les éléments d'un tableau -Récursivité- VoirVoici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les structures en langage C++ VoirDiffé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...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...

1

helali, le 17 oct 2004 à 18:13:05

Voilà tout le programme de tri(sous windows) par la methode trimin, reste à la compiler :
#include<stdio.h>
#include<stdlib.h>
main()
{ int tab[7]="5,89,23,999,2";
int i,j,indmin,q;
for(i=0;i<7;i++)
{ indmin=i;
for(j=i+1;j<7;j++)
if(tab[j]<tab[i]) indmin=j;
q=tab[i];
tab[i]=tab[indmin];
tab[indmin]=q;
}
system("pause");
return 0;
}
Bon courage

Répondre à helali

10

snifman, le 31 oct 2008 à 13:06:24

Bonjour,
helali j'espere ke tou ca se passe bien chez toi,est ce que vous pouvez me dire d'ou je peux trouver des exercices du language c precisement les tableaux comme (tri par insertion,tri normale.... ) avec des pointeur.
alors si vous voulez me contacter voila mon adresse E-mail:alaeand1@hotmail.com
Merci

Répondre à snifman

2

scoubidou944, le 18 oct 2004 à 11:25:12

Regle n°1 : ne JAMAIS réinventer la poudre.

http://www.stlport.org/

Les STL Port sont un groupe de template C++ permettant de gérer les listes, les tri, les streams....

Règle n°2 : faire un grep sur google
http://www.delorie.com/gnu/docs/glibc/libc_143.html

Règle n°3 : Aller je donne la réponse : fonction qsort()
Y'a des jours où il faut pas m'chercher. 
Et y'a des jours tous les jours.

Répondre à scoubidou944

3

Guki, le 18 oct 2004 à 11:44:53

Salut!

#include <stdlib.h>
void qsort(void base, size_t nmemb, size_t size,
	int (*compar)(const void *, const void *));


Il n'y a rien à faire et ça fait parti du standard C que demande plus le peuple?

NB: Pour choisir l'ordre croissant ou décroissant il suffit de changer la fonction compar.

Répondre à Guki

4

fion, le 21 aoû 2008 à 15:51:13

Bonjour,

Réinventer la roue?!
C'est sur mais quand c'est pour apprendre, c'est très utile :)
donc si quelqu'un a une solution car j'ai le même soucis sauf que moi l'utilisateur doit rentrer 8 valeures entre 0 et 255 et j'ai pensé que créer deux tableaux, un stockant les valeures entrées, et un autre pour afficher les valeures triées.
Mais j'ai pas de réelle expérience en algo donc un pti coup de pouce n'est pas de refus

Merci d'avance :)

Répondre à fion

6

sthael_01, le 22 aoû 2008 à 00:06:25

Been je vais t'aider si ce forum existe c'est tout de meme pour s'entraider aussi car tout vaut le cout pour apprendre:

#include<stdio.h>/* declaration des bibliotheques */
#include<conio.h>

var
int i,j; /*declaration des variables */
float A[7],temp;
void main()
{
for (i=0;i<7;i++)
{
printf("A[%d]=",i+1);
scanf("%f",&A[i]);
}
printf("affichage du tableau:\n");
for (i=0;i<7;i++)
printf("%.2f\t",A[i]);
printf("resultat du tableau trié:\n");
for (i=0;i<6;i++)
for (j=i+1;j<7;j++)
if (A[i]>=A[ j]
{
temp=A[i];
A[i]=A[ j];
A[ j ] =temp;
}
for (i=0;i<7;i++)
printf("%.2f\t",A[i]);
getch();/*pour retenir l'affichage*/
}
j'esper que ton probleme est resolu

Répondre à sthael_01

5

scoubidou944, le 21 aoû 2008 à 21:05:24

Ah joli, un sujet déterré de 4 ans...

Alors déjà on ouvre un autre topic pour commencer.

ensuite la réponse est donnée plus haut en 1 et 2.

Si le code ne te parait pas clair, remet le en forme.

sinon Google sur qsort().

On ne peut pas non plus t'apprendre à progammer, il y a des bouquins pour cela.

Y'a des jours où il faut pas m'chercher.
Et y'a des jours tous les jours.

Répondre à scoubidou944

7

fion, le 22 aoû 2008 à 02:06:41

Merci bien :)

Et merde à scoubidou si t'es pas content tu répond pas et surtout que la réponse n'est pas donnée plus haut au "probleme" que j'ai soulevé :)

Répondre à fion

8

scoubidou944, le 22 aoû 2008 à 10:29:03

Si elle est marquée.
ensuite tu restes poli
ensuite tu n'as pas cherché sur google un minimum parce que tu veux une réponse toute cuite.

2 mot à taper : qsort msdn
et ca donne :
[url]http://msdn.microsoft.com/en-us/library/zes7xw0h(VS.71)­.aspx/url

Je n'irais pas jusqu'aux STL parce que là non plus tu n'as pas du chercher...

Y'a des jours où il faut pas m'chercher.
Et y'a des jours tous les jours.

Répondre à scoubidou944

9

sthael_01, le 22 aoû 2008 à 12:53:23

Et les ga jai pas fait attention à la date de toute façon c'est pas grave
les solutions sont donc là et peuvent y deumerer

Répondre à sthael_01

11

offset_0x0ff0, le 8 déc 2008 à 23:44:47

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;
}
}
}
}

Répondre à offset_0x0ff0

12

diop5, le 25 mar 2009 à 17:20:06

/*voici un algorithme de tri pour débutant*/
#include<stdio.h>
int main()
{
int N,i,T[N],tmp,echange;
echange=1;

printf("Donner la taille du tableau");
scanf("%d",&N);

for(i=0; i<=N-1; i++)
{
printf("Donner la valeur de la colonne %d \t",i);
scanf("%d",&T[i]);
}

while(echange==1)
{
echange=0;
for(i=0; i<=N-1; i++)
if( T[i] > T[i+1] )
{

tmp = T[i];
T[i] = T[i+1];
T[i+1] = tmp;
echange=1;
}

//trie du tableau

}

for(i=0; i<=N-1; i++)
printf("T[%d]=%d",i+1,T[i]);

fflush(stdin);
getchar();
}

Répondre à diop5

13

ilyas.dll, le 18 avr 2009 à 01:42:32

Voila un petit programme de tri croissant dans un tableau unidimensionnel!!..reste a compiler!!
#include<stdio.h>
#include<stdlib.h>
main()
{
int i,n,c,j;
int T[n];
printf("entrer la valeur de n : ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("T[%d]= ",i);
scanf("%d",&T[i]);
}
for (j=1;j<=n;j++)
{
for (i=1;i<n;i++)
{
if (T[i]<T[i+1])
{
c=T[i];
T[i]=T[i+1];
T[i+1]=c;
}
}
}
for (i=1;i<=n;i++)
//affichage
printf("T[%d]=%d \n",i,T[i]);
system("pause");
}

Répondre à ilyas.dll

14

fiddy, le 18 avr 2009 à 01:57:01

Salut,
Ton code ne risque pas de marcher.

int T[n];
Oui, mais n n'est pas défini.

for (i=1;i<=n;i++)
En C, les tableaux commencent à l'indice 0.

Et enfin, main() renvoie un entier.
Google is your friend

Répondre à fiddy

15

 hhako, le 13 aoû 2009 à 14:57:10

Oui je cherche à trie en c basic

Répondre à hhako