Bonjour à tous !
Je rencontre une erreur "invalid conversion" lors du lancement de mon programme.
Celle ci intervient lorsque j'appelle ma fonction, d'ailleurs le problème se pose également lors de l'appelle d'une autre fonction. Bref je n'arrive à résoudre le problème :?
voici le code :
Et voici ma fonction partitionner :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 int triRapide (int vec[],int premier, int dernier ){ // declaration variable int pivot int pivot; // test de larrêt qui se fait quand premier nest plus inférieur à dernier. if (vec[premier] >= vec[dernier]){ return pivot; }else{ pivot = 4; } // valoriser la varibale pivot pivot = partitionner(vec[pivot], premier, dernier, pivot); // <----- problème ici "invalid conversion from int to int* fpermissive " // appel deux fois de triRapide à pivot -1 et pivot +1 triRapide(vec[pivot-1], premier,dernier); // <----- probleme ici "invalid conversion from int to int* fpermissive " triRapide(vec[pivot+1], premier,dernier); // < ----- et ici "invalid conversion from int to int* fpermissive " }
Il est probable qu'il y est d'autres erreurs .... mais à force de toucher à tout :lol:Code:
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 int partitionner (int vec[],int premier, int dernier, int &pivot){ // Echange dernier et pivot echanger (dernier, pivot); // j initialisé à l'indice de la premiere case int j = 0; //boucle faisant varier un i du premier au dernier element for (int i = 0; i <= dernier; i++) { // si i < au dernoer element if (vec[i] < vec[dernier]) { // alors echange le ième avec le jieme echanger(vec[i],vec[j]); //incremente j j++; } } // remplacer le jème avec le dernier et retourner j echanger(vec[j], vec[dernier]); return j; }
Merci pour votre aide !!!
