A voir également:
- Tri bulle c
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Video bulle whatsapp - Accueil - Messagerie instantanée
- Whatsapp couleur bulle - Accueil - Messagerie instantanée
- Info bulle excel ✓ - Forum Excel
8 réponses
En pseudo-code:
procédure tri_bulle(tableau T, entier n) répéter échange_effectué = faux pour j de 0 à n - 2 si T[j] > T[j + 1], alors échanger T[j] et T[j + 1] échange_effectué = vrai tant que échange_effectué fin procédure
Merci pour ton aide. Ca c'est la fonction que j'ai à créer pour faire le tri? J'ai esssayé de on coté avec des morceaux de cours mais ca donne pas grand chose... Regarde :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n=10, A[100];
alea (A,n);
affichage (A,n);
Tri (A,n);
affichage (A,n);
return (0);
}
void alea(int A[],int n)
{
int i;
srand(1);
for (i=0;i<n;i++) A[i]=rand()/100;
}
void Tri (int A[],int n )
{
int j;
int i;
for( j=0,j<n-1,j++)
for(i=0,i<n-j-1,i++)
if(A[i]>A[i+1])echange (&A(i),&A(i+1));
}
void echange (int*x,int*y)
{
int k,h;
h=*x;
*x=*y;
*y=k;
}
void affichage(int n,float A[100])
{
int i;
for (i=0;i< n;i++) printf("A[%d] = %f\n",i,A[i]);
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n=10, A[100];
alea (A,n);
affichage (A,n);
Tri (A,n);
affichage (A,n);
return (0);
}
void alea(int A[],int n)
{
int i;
srand(1);
for (i=0;i<n;i++) A[i]=rand()/100;
}
void Tri (int A[],int n )
{
int j;
int i;
for( j=0,j<n-1,j++)
for(i=0,i<n-j-1,i++)
if(A[i]>A[i+1])echange (&A(i),&A(i+1));
}
void echange (int*x,int*y)
{
int k,h;
h=*x;
*x=*y;
*y=k;
}
void affichage(int n,float A[100])
{
int i;
for (i=0;i< n;i++) printf("A[%d] = %f\n",i,A[i]);
}
Le C ce n'est pas juste de l'assemblage de code...
Tu utilises void affichage(int, float) alors que ton tableau est en int... Il faut au moins une certaine cohérence.
Pour la fonction Tri, Heliotte t'a donné le pseudo-code, encore faut-il respecter l'algorithme. Ce que vous avez écrit n'est pas du tri à bulle.
Ta fonction echange() est fausse. Tu fais *y=k. Alors que k vaut n'a pas été initialisé... Cette ligne est à revoir.
Et enfin, il ne faut pas oublier de déclarer tes variables avant de les appeler. Sinon ton compilateur va raler.
Tu utilises void affichage(int, float) alors que ton tableau est en int... Il faut au moins une certaine cohérence.
Pour la fonction Tri, Heliotte t'a donné le pseudo-code, encore faut-il respecter l'algorithme. Ce que vous avez écrit n'est pas du tri à bulle.
Ta fonction echange() est fausse. Tu fais *y=k. Alors que k vaut n'a pas été initialisé... Cette ligne est à revoir.
Et enfin, il ne faut pas oublier de déclarer tes variables avant de les appeler. Sinon ton compilateur va raler.
Le tri à bulles devrait ressembler à :
void Tri(int A[],int n) { int i,j,iTemp; bool EchangeEffectue; EchangeEffectue=true; while(EchangeEffectue) { EchangeEffectue=false; for (i=0 ; i<n-j-1 ; i++) { if (A[i] >= A[i+1]) { iTemp=A[i]; A[i]=A[i+1]; A[i+1]=iTemp; EchangeEffectue=true; } } } }
1) Pas besoin de pointeur à ton niveau.
2) Tu te permet de sauter les acolades des bloques conditionnels et des boucles, chose fortement deconseillé même pour les programmeurs expérimentés.
3) Ta fonction alea n'est absolument pas aléatoire, cherche sur le net des exemples.
2) Tu te permet de sauter les acolades des bloques conditionnels et des boucles, chose fortement deconseillé même pour les programmeurs expérimentés.
3) Ta fonction alea n'est absolument pas aléatoire, cherche sur le net des exemples.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour vos aides et désolé si je vous choque par mon travail ^^ Je trouve que le prof commence bien trop fort pour des étudiants qui ont jamais vu ça...
Ah lol Quelqu'un aurait il la gentillesse de me proposer un programme complet? Je ne parvient pas à corriger les erreurs :/
T'arrives pas à traduire le code d'Héliotte en C ??
Un tuto sympa pour débuter : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Un tuto sympa pour débuter : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Alors voilà ce que j'ai, le programme marche seulement la fonction aléatoire non comment faire pour généner des chiffres aléatoire et non fixés?
#include <stdio.h> #include <stdlib.h> int main() { int A[100]; int n=10; alea(A,n); affichage(A,n); Tri(A,n); affichage(A,n); return(0); } void alea(int A[],int n) { int i; srand(1); for (i=0;i<n;i++) A[i]=rand()/100; } void affichage(int A[], int N) { int i; for (i=0 ; i<N ; i++) printf("%d\n",A[i]); printf("\n\n"); } void Tri(int A[],int n) { int i,j; for (j=0;j<n;j++) for (i=0 ; i<n-j-1 ; i++) if (A[i] >= A[i+1]) echange(&A[i],&A[i+1]); } void echange(int*x,int*y) { int k; k=*x; *x=*y; *y=k; }