New javaer

yang -  
Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je vient de étudier java et j'ai une problème sur le sujet tri par sélection

voici mon code

public static void main (String args[]) {
  int[]t = {1,1,2,4,7,5};
  int n = t.length;
  int B = 9;
  int a = 1;
  tri(t,a,n,B);
  for(int i = 0;i<n;i++){
   System.out.println(t[i]);
   }

public static void tri(int[] tableau,int a, int n, int B){
  for(int c=0;c<n;c++){
   int min = c;
   for(int j = c+1;j<n;j++){
    if (tableau[j]<tableau[min]){
     min = j;
    }
     }
   if(min!=c){
    tableau[c]=tableau[min];
    }  
}
}
}


mais j'ai le résultat :
1
1
2
4
5
5

qqun m'aidez ?

2 réponses

  1. Smiley32 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention   23
     
    Salut,
    Tout d'abord, plusieurs choses :
    - Qu'est-ce que ton programme est censé faire ?
    - Donne des noms significatifs à tes variables pour qu'on puisse te relire
    - Indente correctement ton code
    Ensuite, essaye de parler en français correct pour qu'on puisse te comprendre
    0
  2. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour yang,

    A la ligne 20 tu copies l'indice min vers l'indice courant.
    En fait, il faut échanger les deux valeurs par
     if ( min != c ) {
        int tmp = tableau[c]; 
        tableau[c] = tableau[min];
        tableau[min] = tmp;
    }
    0