Ranger par ordre croissant les éléments d'un tableau
Résolu
diaguily9
Messages postés
18
Statut
Membre
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour,
svp aidez moi je veux écrire un programme qui classe les éléments d'un tableau par ordre croissant. voila ce que j'ai fait mais desfois ça marche et desfois ça ne marche pas
svp aidez moi je veux écrire un programme qui classe les éléments d'un tableau par ordre croissant. voila ce que j'ai fait mais desfois ça marche et desfois ça ne marche pas
#include<stdio.h> #include<conio.h> int main ( ){ int n,i,j=0,tab[10]; printf("entrer le nombre de valeurs:\n"); scanf("%d",&n); for(i=0;i<n;i++){ printf("entrer une valeur pour chaque cellule"); scanf("%d",&tab[i]); if(tab[i]>tab[i+1]){ tab[i]=j; tab[i+1]=tab[i]; j=tab[i+1]; } for(i=0;i<n;i++){ printf("%d",&tab[i]) } getch ( ); return 0; } }
A voir également:
- Tri croissant d'un tableau en c
- Excel trier par ordre croissant chiffre - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Salut diaguily9,
Collecte dans un premier temps les éléments du tableau, trie le ensuite. Tu ne peux pas faire les deux en même temps.. du moins pas comme cela.
Pour un tri à bulles, tu dois refaire une passe sur le tableau tant que tu as au moins une permutation.
https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
en lignes 9 et 6, enlève le &, car pour le scanf, tab[i] est déjà un pointeur, et pour le tab[i] de printf, ce n'est pas un pointeur mais le contenu que tu veux afficher.
Dal
Collecte dans un premier temps les éléments du tableau, trie le ensuite. Tu ne peux pas faire les deux en même temps.. du moins pas comme cela.
Pour un tri à bulles, tu dois refaire une passe sur le tableau tant que tu as au moins une permutation.
https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
en lignes 9 et 6, enlève le &, car pour le scanf, tab[i] est déjà un pointeur, et pour le tab[i] de printf, ce n'est pas un pointeur mais le contenu que tu veux afficher.
Dal
en analysant ton code plus en détails, je vois qu'il y a de nombreuses autres erreurs, dont une erreur de syntaxe (oubli du point-virgule à la fin de la ligne 16) qui fait qu'il est impossible que ton code compile et que tu puisses l'exécuter, contrairement à ce que tu indiques.
je peux t'indiquer quelles sont tes erreurs, si c'est ce que tu entends par "corrigé complet", mais te fournir le code qui est la réponse à ton exercice irait à l'encontre de la Charte du forum : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
la première chose à faire est de prendre un papier et un crayon et d'écrire ton algorithme, là ta logique est fausse.
ensuite, tu peux le traduire en code C.
un macro-algorithme (à détailler par tes soins) serait :
lorsque tu écris un programme, écris le petit à petit et teste chaque partie avant de passer à la suivante.
Ecris d'abord "- obtenir un tableau d'entiers d'une certaine taille", teste.
écris ensuite "- afficher le tableau", teste que cela affiche bien le contenu du tableau tel que tu l'as saisi.
écris ensuite la partie correspondante au tri, teste, jusqu'à mise au point.
Lorsqu'on écrit un programme, le processus est itératif, et il n'est pas pratique d'avoir à saisir à chaque fois un jeu de données pour tester.
Une fois que tu as écrit ta partie sur la saisie des données et qu'elle est au point, tu peux t'en passer pour développer et tester le code correspondant à ton tri.
Commente la alors et met directement dans ton code un tableau avec des données d'exemple, ce qui te permettra d'accélérer ton cycle de développement.
Par exemple, comme cela :
Une fois que tu as tout mis au point, retire tes données de test et réinsère le code comportant la saisie utilisateur, si elle t'est demandée.
Dal
merci beaucoup Dal j'ai trouvé la solution