Problème pour tableau croissant
Je suis entrain de faire un exercice qui me semblait facile mais je galère à me casser la tête pour y arriver.
le but est de créer un tableau de façon trié à chaque fois qu'on entre une valeur.
J'ai fait cela mais ça semble ne pas fonctionner correctement
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
|
#include <stdio.h>
#include <stdlib.h>
#define true 1
#define false 0
int main(void) {
int tab[10];
int val,i,j,l,pos,verif;
// parcourir le tableau 10 fois pour entrer les valeurs
for(i=0; i<10; i++) {
printf("Entrer une valeur positive N ° %d : ",i);
scanf("%d",&val);
// contrôle de boucle pour entrer des nombres positives
while(val < 0) {
printf("Erreur entrer un nombre positif N ° %d : ",i);
scanf("%d",&val);
}
// au premier indice = 0 de tab on stocke la valeur
if(i==0) {
tab[i]=val;
}
// au second indice on parcours le tableau et on détermine la position
verif=false;
for(j=0; j<i; j++) {
if(tab[j] > val) {
pos=j;
verif=true;
}
}
if(verif==true) {
for(l=i; l>=pos; l--) {
tab[l]=tab[l-1];
}
tab[pos]=val;
}
else
tab[i]=val;
}
for(i=0; i<10; i++)
printf("%d\n",tab[i]);
return EXIT_SUCCESS;
} |
Si quelqu'un aurait une idée de comment m'y prendre.
Merci