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 : 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 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
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 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 !!!
Partager