Forum Clubic

Tri à bulles

il faut que je classe n valeurs par ordre croissant en utilisant le tri à bulles mais j’ai un petit problème, pouvez-vous m’aider?
mon code:
#include
#include
#include
#include
#define N 10

void nbl(const int* tab, size_t size) {
std::cout << “tab[” << size << "]: “;
for (size_t i = 0; i < size; ++i) {
printf(”|%d| ",tab[i]);
}
std::cout<< std::endl;
}

void tri_bulle(inttab, intn){

int i,j,x ;
for(i=1 ; i<n;i++ ){
for(j=1 ; j<n-1;j++){
if(tab[j]>tab[j+1]){
x=tab[j] ;
tab[j]=tab[j+1] ;
tab[j+1]=x;}
}
}
}

int main() {
int tableau_aleatoire[N];
srand(time(NULL));
for (int i=0;i<N; ++i) {
tableau_aleatoire[i] = rand()%100;
}
nbl(tableau_aleatoire, N);
tri_bulle(tableau_aleatoire, N);
printf( " trié: ");
nbl(tableau_aleatoire, N);
return 0;
}

Je suppose que tu es la même personne qu’ici : www.clubic.com…

=> Si tu as perdu ton mot de passe, y a moyen de le réinitialiser sans créer un autre compte.

Et si tu veux une réponse, il faudrait déjà expliquer ton problème.

Tu peux (encore une fois) utiliser cpp.sh… pour tester ton code en ligne et surtout nous fournir une version écrite aup propre.

oui, je suis la même personne et j’ai perdu mon mot de passe.

mon problème c’est que lorsque je met mon programme sur codepad, le résultat est:
cc1plus: warnings being treated as errors
In function ‘void nbl(const int*, size_t)’:
Line 10: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘const int*’
In function ‘void tri_bulle(int*, int*)’:
Line 19: error: ISO C++ forbids comparison between pointer and integer
compilation terminated due to -Wfatal-errors.

et je n’arrive pas à trouver mes erreurs.

Au risque de paraître stupide, tu as une fonctionnalité de réinitialisation de mot de passe. Si ça ne marche pas, je peux faire passer le message à l’équipe de Clubic.

Tu as deux erreurs:

  • line 10: tu dois passer tab[i]; ie: tu passes à printf un const int* quand est attendue int (ce n’est que la traduction du message)
  • line 19: ta fonction tri_bulle(inttab, intn) n’est pas bien déclarée; il faut mettre void tri_bulle(int*tab, int n) (donc sans étoile).

Ce qui donne ça : cpp.sh…

j’ai pas cherché à réinitialiser mon mot de passe, j’ai créé un autre pseudo, ça va aussi vite.

Et sinon merci pour le code, ça marche.