1 pièce(s) jointe(s)
Problème tri à bulle d'un tableau
Bonjour, j'essaie de trier un tableau avec des valeurs aléatoires mais ça ne marche pas complètement, à chaque fois un 0 (à la place du plus grand nombre) apparait, j'obtiens cela :
Pièce jointe 191904
Pouvez-vous m'aider à trouver l'erreur :) Merci
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 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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#include <ctype.h> /* pour tolower */
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define NMAX 400
void gen_aleat( double v[], int n)
{
int i;
for (i=0; i<n; i++) v[i]=(rand()-rand())%32768;
}
void aff( double v[], int n )
{
int i;
for( i = 0; i < n; i++ )
{
printf( "%7.0f ", v[i]);
}
printf("\n");
}
void tri_bulle(double v[], int n)
{
int i;
int j;
int temp;
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if (v[j+1]<v[j])
{
temp=v[j];
v[j]=v[j+1];
v[j+1]=temp;
}
}
}
}
int main()
{
double v[NMAX];
srand( time(NULL) );
int n;
int ok;
int choix;
do
{
printf("Entrer le nb elements compris entre 0 et %d :", NMAX);
ok=scanf("%d",&n);
while (getchar()!='\n');
}while (!ok || n<0);
gen_aleat(v,n);
aff(v,n);
tri_bulle(v, n);
aff(v,n);
return 0;
} |