A voir également:
- Tri par bulle
- Video bulle whatsapp - Guide
- Tri excel - Guide
- Peut on récupérer un colis au centre de tri chronopost - Forum Consommation & Internet
- Logiciel de tri de photos - Guide
- Changer couleur bulle whatsapp - Forum WhatsApp
2 réponses
PRNE555
Messages postés
15
Date d'inscription
vendredi 6 novembre 2015
Statut
Membre
Dernière intervention
24 mars 2016
2
20 nov. 2015 à 22:49
20 nov. 2015 à 22:49
Salut,
Ton 5 n'est pas pris en compte à cause de ton
Ton taille-1 signifie 4-1, car ton array comporte 4 éléments sa longueur est donc 4.
Si tu veux que ton code fonctionne correctement, il faut que tu retires ton
Ensuite tu rajoutes une condition qui vérifie que i est inférieur à taille-1, pour pas que tu cherche à accéder à un élément dont l'indice dépasse l'indice max de ton tableau.
Pour finir dans ton
N'hésite pas à me demander si j'ai pas été suffisamment clair !
Ton 5 n'est pas pris en compte à cause de ton
tab[i+1], à la première itération de ta boucle for, i vaut 0, 0+1=1, donc ton 5 qui est l'élément d'indice 0 n'est pas affiché.
Ton taille-1 signifie 4-1, car ton array comporte 4 éléments sa longueur est donc 4.
Si tu veux que ton code fonctionne correctement, il faut que tu retires ton
taille-1et que tu remplaces par
taille.
Ensuite tu rajoutes une condition qui vérifie que i est inférieur à taille-1, pour pas que tu cherche à accéder à un élément dont l'indice dépasse l'indice max de ton tableau.
Pour finir dans ton
printlnenlève le +1 dans
tab[i+1]et tout devrait rouler !
N'hésite pas à me demander si j'ai pas été suffisamment clair !
j'ai corrigé mon prg
mais, s'il fallait écrire:
"ton println enlève le +1 dans tab[i+1] et tout devrait rouler "
pouvez vous m'expliquer cette parti de ce code:
import java.util.Scanner;
public class Test3
{
public static void main(String[] args)
{
int i = 0;
int tab[] = {5,7,8,6};
boolean maxi = true;
int taille = tab.length;
while(maxi)
{
maxi = false;
for ( i=0; i<taille; i++ )
{
if(i<taille-1)
{
if ( tab[i] > tab[i+1] )
{
int temp = tab[i];
tab[i] = tab[i+1];
tab[i+1] = temp;
maxi = true;
}
}
System.out.println("Trié les éléments en ordre croissant "+(i+1)+":"+tab[i]);
}
System.out.println(" ** ");
}
}
}
mais, s'il fallait écrire:
"ton println enlève le +1 dans tab[i+1] et tout devrait rouler "
pouvez vous m'expliquer cette parti de ce code:
int temp = tab[i];
tab[i] = tab[i+1];
tab[i+1] = temp;