Tri par permutation en java (c urgent)

Résolu
mettaleuxademaroc Messages postés 5 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006 - 28 déc. 2006 à 20:41
mettaleuxademaroc Messages postés 5 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006 - 29 déc. 2006 à 15:36
un problem de tri svp

public class Tri{
      int[]tab=new int[10];
      int t,j;
   void saisie(){
    for(int i=0;i<10;i++){
      System.out.println("Entrez le donne N°:"+(i+1));
      tab[i]=Keyboard.readInt();
  }
 }
   void tri(){
       for(int j=0;j<10;j++){
           for(int i=j;i>0;i--){
              if (tab[i]>tab[i+1]){
                  t=tab[i];
                  tab[i]=tab[i+1];
                   tab[i+1]=t;
                }
            }
        }
    }
 public static void main(String[]args){
          Tri o=new Tri();
            o.saisie();
            o.tri();
           for(int i=0;i<10;i++)
          System.out.println("tab["+i+"]="+o.tab[i]);
        }
    }
 

non compuler ,kel est l'erreur  svp

5 réponses

kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
29 déc. 2006 à 14:51
le problème vient de j=10 car pour ligne "if (tab[i]>tab[i+1])"
cela donne if (tab[10]>tab[11]){ don dépassement de la capacité du tableau.
il faut faire :
for(int j=0;j<9;j++){
               for(int i=j;i>=0;i--){
                  if (tab[i]>tab[i+1]){
                      t=tab[i];
                      tab[i]=tab[i+1];
                       tab[i+1]=t;
                    }
                }
            }

j'ai une correction à "for(int i=j;i>0;i--){" pour qui traite le cas de tab[0].
1
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
29 déc. 2006 à 09:40
SVP
donnes nous le message d'erreur.
0
mettaleuxademaroc Messages postés 5 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006
29 déc. 2006 à 12:25
voici le message d'erreur

Exception in thread "main" java.lang.arrayIndexOutOfBoundsException:3
                                 at Heur.saisie(Heur.java:8)
                                 at Heur.main(Heur.java:28)
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
29 déc. 2006 à 12:39
est ce que l'erreur se produit tout de suite ? ou se passe au environ de la 5ième saisie?
Bob...
"Vaut mieux se taire et passer pour un con, que de l'ouvrir et ne laisser aucun doute sur le sujet..."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mettaleuxademaroc Messages postés 5 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006
29 déc. 2006 à 15:36
oui vous avez raison merci bq
0
Rejoignez-nous