Tri tableau en ordre croissant
Rasy1252
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai besoin d'aide pour trie ce tableau en ordre croissant
int A[] = {2, 4, 6, 8, 0, 1, 3, 5, 9, 7};
Merci !!
J'ai besoin d'aide pour trie ce tableau en ordre croissant
int A[] = {2, 4, 6, 8, 0, 1, 3, 5, 9, 7};
Merci !!
Configuration: Windows / Chrome 83.0.4103.61
A voir également:
- Tri tableau en ordre croissant
- Excel trier par ordre croissant chiffre - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Logiciel tri photo - Guide
6 réponses
Bonjour,
C'est pour quand ? Rappel :
CCM ne fait pas les exercices. Une aide peut être donnée si un travail personnel est démontré.
C'est pour quand ? Rappel :
CCM ne fait pas les exercices. Une aide peut être donnée si un travail personnel est démontré.
Salut Rasy1252,
Renseigne toi sur les algorithmes de tri.
Si aucun ne t'est imposé en particulier, tu peux utiliser l'algorithme de tri à bulles qui est un des plus simples :
https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
Si tu as le droit de le faire, tu peux aussi utiliser la fonction standard du C
http://www.cplusplus.com/reference/cstdlib/qsort/
Dal
Renseigne toi sur les algorithmes de tri.
Si aucun ne t'est imposé en particulier, tu peux utiliser l'algorithme de tri à bulles qui est un des plus simples :
https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
Si tu as le droit de le faire, tu peux aussi utiliser la fonction standard du C
qsort(), qui est accessible par l'entête
<stdlib.h>:
http://www.cplusplus.com/reference/cstdlib/qsort/
Dal
Bonjour,
oui justement cette algorithme mes imposé:
A := [2,4,6,8,0,1,3,5,9,7]
répéter
echange := false
pour i := 1 à 9 inclusivement faire
si A[i-1] > A[i] alors
temp := A[i-1]
A[i-1] := A[i]
A[i] := temp
echange := true
fin du “si”
fin du “pour”
Jusqu’à ce que echange == false
pour i := 0 à 9 inclusivement faire
afficher(A[i])
fin du “pour”
fin du programme
Et le code que j'ai fait, produit les chiffres 2460135879
Au lieu d'être en ordre croissant
Est-ce que quelqu'un voit mon erreur ? , voici mon code :
public static void main(String[] args) {
int temp;
boolean echange;
int A[] = {2, 4, 6, 8, 0, 1, 3, 5, 9, 7};
echange = false;
do {
for (int i=1;i<=9;i++){
if (A[i-1] > A[i]) {
temp = A[i-1];
A[i-1] = A[i];
A[i] = temp;
echange = true;
}
}
} while (echange == false );
for (int i=0;i<=9;i++){
System.out.print(A[i]);
}
}
oui justement cette algorithme mes imposé:
A := [2,4,6,8,0,1,3,5,9,7]
répéter
echange := false
pour i := 1 à 9 inclusivement faire
si A[i-1] > A[i] alors
temp := A[i-1]
A[i-1] := A[i]
A[i] := temp
echange := true
fin du “si”
fin du “pour”
Jusqu’à ce que echange == false
pour i := 0 à 9 inclusivement faire
afficher(A[i])
fin du “pour”
fin du programme
Et le code que j'ai fait, produit les chiffres 2460135879
Au lieu d'être en ordre croissant
Est-ce que quelqu'un voit mon erreur ? , voici mon code :
public static void main(String[] args) {
int temp;
boolean echange;
int A[] = {2, 4, 6, 8, 0, 1, 3, 5, 9, 7};
echange = false;
do {
for (int i=1;i<=9;i++){
if (A[i-1] > A[i]) {
temp = A[i-1];
A[i-1] = A[i];
A[i] = temp;
echange = true;
}
}
} while (echange == false );
for (int i=0;i<=9;i++){
System.out.print(A[i]);
}
}
bonjour,
tes deux erreurs sont assez évidentes, mais tu appendras beaucoup plus en les découvrant toi-même.
pour comprendre ce que fait le code que tu as écrit, ajoute des instructions
tu découvrirais peut-être une des deux erreurs si tu indentais ton algorithme et ton code, et en les comparant.
quand tu partages du code, prends soin d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
tes deux erreurs sont assez évidentes, mais tu appendras beaucoup plus en les découvrant toi-même.
pour comprendre ce que fait le code que tu as écrit, ajoute des instructions
System.out.printdans ta boucle et dans ton test, pour comprendre par où ton code passe, et pour vérifier que les valeurs des variables sont telles que tu l'attends.
tu découvrirais peut-être une des deux erreurs si tu indentais ton algorithme et ton code, et en les comparant.
quand tu partages du code, prends soin d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Oui merci, je suis débutant.
Après plusieurs test je crois que mon do, while ne fonctionne pas et je ne comprend pas pourquoi , vous auriez plus de détails
Concernant mes erreurs ?
Merci !
Après plusieurs test je crois que mon do, while ne fonctionne pas et je ne comprend pas pourquoi , vous auriez plus de détails
Concernant mes erreurs ?
Merci !
ce sont deux différences entre ton algorithme et ton code.
tu découvrirais peut-être une des deux erreurs si tu indentais ton algorithme et ton code, et en les comparant.
quand tu partages du code, prends soin d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je pense que ton do/while fonctionne comme tu l'as écrit, pas comme tu l'imagines.
as-tu ajouté des instructions System.out.print dans ta boucle et dans ton test, pour comprendre par où ton code passe, et pour vérifier que les valeurs des variables sont telles que tu l'attends? montre ton code avec ces instructions, ainsi que ce que cela imprime.
avant de traduire l'algorithme en code, as-tu essayé de le comprendre? as-tu testé l'algorithme avec un crayon et une feuille?
c'est, avant tout, en travaillant et en réfléchissant que tu progresseras.
tu découvrirais peut-être une des deux erreurs si tu indentais ton algorithme et ton code, et en les comparant.
quand tu partages du code, prends soin d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je pense que ton do/while fonctionne comme tu l'as écrit, pas comme tu l'imagines.
as-tu ajouté des instructions System.out.print dans ta boucle et dans ton test, pour comprendre par où ton code passe, et pour vérifier que les valeurs des variables sont telles que tu l'attends? montre ton code avec ces instructions, ainsi que ce que cela imprime.
avant de traduire l'algorithme en code, as-tu essayé de le comprendre? as-tu testé l'algorithme avec un crayon et une feuille?
c'est, avant tout, en travaillant et en réfléchissant que tu progresseras.
J'ajouterai que ton code n'est pas en C, alors que tu avais initialement posté ta question dans le forum C, d'où ma réponse initiale concernant ce langage.
Comme il s'avère que tu codes ton tri à bulles en Java, j'ai déplacé ton fil de discussion dans le forum Java.
Cependant, tes difficultés ne sont pas liées au langage utilisé et sont plus des problèmes de rigueur et de compréhension de ce que fait une boucle do / while, qui se comporte de la même manière dans ces deux langages et de nombreux autres.
Comme il s'avère que tu codes ton tri à bulles en Java, j'ai déplacé ton fil de discussion dans le forum Java.
Cependant, tes difficultés ne sont pas liées au langage utilisé et sont plus des problèmes de rigueur et de compréhension de ce que fait une boucle do / while, qui se comporte de la même manière dans ces deux langages et de nombreux autres.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Oui j'ai écrit sur une feuille et vérifier avec system.out.print, mais il y a quelque chose dans ma façon de faire qui cloche, y'a rien qui réussi et je suis découragé la, est-ce possible de connaître mes erreurs pour changer ma façon de faire et ne plus commettre ces erreurs ?
Merci à l'avance !
Oui j'ai écrit sur une feuille et vérifier avec system.out.print, mais il y a quelque chose dans ma façon de faire qui cloche, y'a rien qui réussi et je suis découragé la, est-ce possible de connaître mes erreurs pour changer ma façon de faire et ne plus commettre ces erreurs ?
Merci à l'avance !
Ce que j'écrit sur un papier fonctionne(ce que je pense) , mais quand j'essais avec Débugger éclipse, après un tour complet du tableau au lieu de faire un retour à do, ça complète et inscrit les chiffres du tour de tableau 2460135879, et quand j'essais aves system.out.print. je print "V" ca print 5 fois le V quand mon system print est 1er instruction dans le IF et le même system print à la derniere instruction dans le IF , donne 9 fois le V.......donc je crois que "echange " à quelque chose de louche .....J'étudie attentivement ça , merci de ton aide !!
fais-tu des print pour vérifier la valeur de "echange"? cela te permettra de connaitre la réalité, pas seulement de "croire".
pourquoi, au lieu d'imprimer "V", n'imprimes-tu pas un texte qui indique où se trouve l'instruction?
il me semble que tu n'as toujours tenu compte que d'une partie de mes suggestions.
pourquoi, au lieu d'imprimer "V", n'imprimes-tu pas un texte qui indique où se trouve l'instruction?
il me semble que tu n'as toujours tenu compte que d'une partie de mes suggestions.