Bonjour ,

Sur ce programme que j'ai écrit qui trie le tableau à chaque ajout d'un élément , la partie trier sans doublon fonctionne très bien mais si je veux addition les mêmes éléments , j'ai pas ce que je devrais avoir , la somme des deux mêmes éléments est incorrecte après des recherches , je suis un peu perdu...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class Table_tri_dynamique_sans_doublon 
    public static void main(String[] args) {
 
       //tableau sans doublon croissant
    	char tableau[]=new char[9];
    	int ca[]=new int[9];
        char tabclient[]={'e','b','c','a','l','d','f','b','l'};
        int CA[]={100,200,300,400,500,600,700,800,900};
        int i, j, k = 0, dim;
        boolean verif;
        for (i = 0; i < 9; i++) {
            verif = false;
            for (j = 0; j < k && verif != true; j++) { 
                if (tabclient[i] != tableau[j]) {
                    if (tabclient[i] < tableau[j]) {                
                        dim = k + 1;
                        if(dim == 9) dim = 8; 
                        while (dim > j) {
                            tableau[dim] = tableau[dim - 1];
                            ca[dim] = ca [dim - 1];
                            dim--;
                        }
                        tableau[j] = tabclient[i];
                        ca[j] = CA[i];
                        k++;
                        verif = true;
                    }
                }
                if (tabclient[i] == tableau[j]) {
                    ca[i]=ca[i]+CA[j];
                    verif = true;
                }
            }
            if (verif != true && k < 9) {
                tableau[k] = tabclient[i];
                ca[k] = CA[i];
                k++;
            }
        }
 
/*------------------------------------------------------------------*/
        //pour le tableau
        for (i = 0; i < 9; i++) {
            System.out.print(tableau[i] + " ");
        }
        System.out.println();
       // pour les chiffres affaires
        for(i=0; i < 9; i++) {
        	System.out.print(ca[i] + " ");
 
        }
    }
}
J'obtiens :
a b c d e f l // ce qui est bon
800 1200 600 1200 100 1400 1400 0 0 // ici non

Merci pour toutes aides , je pense que l'erreur est sûrement petite

Ps: je sais qu'il existe des méthodes qu'ils font cela en Java mais c'est un entraînement d'algo