Classer par ordre croissant n valeurs d'un tableau

Fermé
marie20014 - Modifié par mamiemando le 14/03/2017 à 10:32
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 - 14 mars 2017 à 10:37
Bonjour à tous,
je dois créer un programme en C++ qui affiche dans un tableau 10 nombres aléatoires, et ensuite les classés par ordre croissant. j'ai fait la première partie mais la seconde me pose problème pouvez-vous m'aider?

mon code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10

int main() {
    int tableau_aleatoire[N];
    int i, j = 0;
    srand(time(NULL));
    for (i = 0; i < N; i++) {
        j = rand() % 100;
        tableau_aleatoire[i] = j;
        printf("|%d| ", tableau_aleatoire[i]);
    } 
    return 0;
}

void tri_insertion(int *tableau_aleatoire, int n) {
    int i, p ,j;
    int x; 
    for (i =1; i < n; i++) {
        x = tableau_aleatoire[i];p = i-1;
        while (tableau_aleatoire[p] > x && p-- > 0) {
        }
        p++;
        for(j = i-1; j >= p; j--) {
            tableau_aleatoire[j+1] = tableau_aleatoire[j];
        }
        tableau_aleatoire[p] = x;
    }
}

affiche: |47| |15| |8| |15| |13| |40| |97| |23| |59| |14|




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
14 mars 2017 à 10:37
Bonjour,

Le premier conseil que je te donne c'est de bien indenter ton programme, ça te permettra de mieux comprendre ce qui se passe. J'ai arrangé le code que tu proposes en conséquences. En particulier une des boucles while de ta fonction qsort ne fait rien et déclencherait même une boucle infinie si p était de type unsigned.

Dans un premier temps, pour des algorithmes très classiques comme le tri par insertion, tu peux retrouver la trame du programme sur wikipedia. Il suffit ensuite de traduire ça en c/c++ ce qui est assez simple (et à mon avis, le but de ton exercice).
https://fr.wikipedia.org/wiki/Tri_par_insertion

Enfin il faut garder à l'esprit que ce que tu fais a du sens dans un exercice, mais qu'en C/C++ on utiliserait directement qsort.
http://www.cplusplus.com/reference/cstdlib/qsort/

Si tu es toujours bloquée, n'hésite pas à nous dire où tu en es et ce qui te bloque.

Bonne chance
0