Rechercher : dans
Par :

Problem de trier un tableau en langage c

Dernière réponse le 3 avr 2009 à 00:44:10 soumia91, le 2 avr 2009 à 21:54:23 
 Signaler ce message aux modérateurs

Bonjour,
j'ai un grande problème en langage c car je ne savais pas la méthode de trier un tableau et je vous donner l'énoncer de l'exercice telle qui les :
ecrire un programme qui ordonne(trie) les élément d'un tableau, en utilisant la méthode suivante:
-une première boucle parcourt le tableau et se positionne sur l'élément i de celui-ci .
-recherchez a partir de cet élément et jusqu'à la fin du tableau la plus petite valeur. échangez cette plus petite valeur avec la valeur a la position i.
-avancez d'une position dans votre première boucle. les éléments avant cette nouvelle position sont triés et vous ne devez plus y toucher.
s.v.p aidez moi car je suis très besoin de la solution.
merci avant tous.

Configuration: Windows XP
Firefox 3.0.8

Meilleures réponses pour « problem de trier un tableau en langage c » dans :
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

fiddy, le 2 avr 2009 à 21:57:55

Salut,
Donne le code que t'as fait pour qu'on puisse t'aider ;-)).
Cdlt
Google is your friend

Répondre à fiddy

2

soumia91, le 2 avr 2009 à 22:09:33

Mais j'avais aucune idée pour trier un tableau si pour ça je vous de monder de me aider

Répondre à soumia91

3

fiddy, le 2 avr 2009 à 22:26:51

Ben ton exercice donne la méthode pourtant. C'est quoi que tu ne comprends pas ?
Google is your friend

Répondre à fiddy

4

soumia91, le 2 avr 2009 à 22:44:04

Vous pouvez me donner le programme correspondant a cet exercice

Répondre à soumia91

5

fiddy, le 2 avr 2009 à 22:50:09
  • +1

donner le programme correspondant a cet exercice
Ce que tu demandes est hors-charte ;-)).
Dis-nous ce que tu ne comprends pas ou fais le début de programme, sinon on ne peut pas aider.
Google is your friend

Répondre à fiddy

6

loupius, le 2 avr 2009 à 23:07:57

Depuis le début, je sentais qu'il voulait se coincer la bulle ;-)))

Répondre à loupius

7

soumia91, le 2 avr 2009 à 23:26:25

J'ai trouver le programme suivant:
#include<stdio.h>
main()
{
int n;
int tab[n];
int i,j,k,m;
printf("donner le nombre d'éléments de ce tableau\n");
scanf("%d",&n);
for(i=0;i<n;i++);
{
printf("donner une valeur \n");
scanf("%d",&tab[i]);
}
for(j=0;j<n;j++)
{
for(k=n;k<=j+1;k++)
{
if(tab[k-1]>tab[k])
{
m=tab[k-1];
tb[k-1]=tab[k]
tab[k]=m;
}
}
}
}
mais ça marche pas
aider mis s.v.p

Répondre à soumia91

8

fiddy, le 2 avr 2009 à 23:36:58

Ce programme (copier de je ne sais où) ne respecte même pas la consigne et en plus il est faux ^^.

recherchez a partir de cet élément et jusqu'à la fin du tableau la plus petite valeur. échangez cette plus petite valeur avec la valeur a la position i.
Ta deuxième boucle for et ton if ne respecte donc pas la consigne.

De plus :

int n;
int tab[n];

n n'est pas initialisée lors de la déclaration du tableau. Il faut l'initialiser.
Google is your friend

Répondre à fiddy

9

soumia91, le 2 avr 2009 à 23:46:41

Mais comment je peut chercher le plus petit élément d'ans un tableau et quel est le code correspondant?

Répondre à soumia91

10

fiddy, le 3 avr 2009 à 00:15:05

Salut,
Tu mémorises le premier élément dans une variable min. Tu parcours le tableau avec une boucle for. Si l'élément est plus petit que min, alors min devient l'élément en question.
A la fin de la boucle, la variable min est le minimum du tableau.
Google is your friend

Répondre à fiddy

11

soumia91, le 3 avr 2009 à 00:24:23
  • +1

J'ai trouver sur un site le programme suivant:
#include <stdio.h>

/* La fonction de permutation
Arguments :
tab : le tableau dans lequel il faut permuter deux elements
i : l'indice du premier element a permuter
j : l'indice du deuxieme element a permuter
Resultats : aucun
La fonction est purement utilitaire et ne sert qu'a alleger le code du tri
*/
void permute (int tab[], int i, int j) {
int temp; /* un variable temporaire */

/* permutation des elements d'indices i et j */
temp = tab[i];
tab[i] = tab[j];
tab[j] = temp;
}

/* La fonction de tri croissant
Arguments :
tab : le tableau a trier dans l'ordre croissant
taille : le nombre d'elements dans le tableau
Resultats : aucun
*/
void tritab (int tab[], int taille) {
int i; /* indice du premier element de la partie non encore triee du tableau */
int j; /* indice utilise pour parcourir la partie non triee a la recherche du plus petit element */
int min; /* indice du plus petit element dans la partie non triee */

/* tout le tableau doit etre trie
au depart, la partie triee est vide et la partie non triee couvre tout le tableau
le premier element de la partie non triee a donc l'indice 0
*/
for (i = 0; i < taille; i++) {

/* recherche du plus petit element de la partie non triee */
min = i;
for (j = i + 1; j < taille; j++) if (tab[j] < tab[min]) min = j;

/* s'il y a un element plus petit que le premier de la partie non triee, on permute */
if (i != min) permute(tab, i, min);
}
}

/* Le programme de test */
int main () {
int tab[10]; /* Un tableau utilise pour le test */
int i; /* Un indice utilise pour le parcours du tableau */

/* Demande et lecture des valeurs initiales des elements du tableau */
for (i = 0; i < 10; i++) {
printf("Introduire tab[%d] : ", i);
scanf("%d", &(tab[i]));
}

/* Affichage des valeurs des elements du tableau avant le tri */
printf("Avant le tri:\n");
for (i = 0; i < 10; i++) {
printf("tab[%d] : %d\n", i, tab[i]);
}

/* Tri du tableau */
tritab(tab, 10);

/* Affichage des valeurs des elements du tableau apres le tri */
printf("Apres le tri:\n");
for (i = 0; i < 10; i++) {
printf("tab[%d] : %d\n", i, tab[i]);
}
}
je pense que c'est la solution de mon exercice

Répondre à soumia91

12

 fiddy, le 3 avr 2009 à 00:44:10

Effectivement et commenté en plus. T'as de la chance qu'internet soit riche d'information ;-))).
Il manque juste le petit return 0; dans le main et t'auras une bonne note sans avoir travaillé ^^.
Google is your friend

Répondre à fiddy
Collection CommentÇaMarche.net