Tableau

futur-genie Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
Ateuf Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,




Qulqu'un(e) m'indiquer comme entre un valeur dans un tableau trié svp
par exemple :
2 8 10
val = 9
: 2 8 9 10
merci bcp
A voir également:

4 réponses

Mouthon Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   143
 
Bonjour.

Il n'existe pas de solution toute prête, tu vas devoir écrire un algorithme toi même.

Tu dois d'abord demander à ton programme de trouver la position de ton nouveau nombre, ensuite tu devras utiliser malloc pour agrandir ton tableau, ou alors avoir pensé à en créer un assez grand avec des cases vides au début.

Ensuite tu devras décaler les valeurs supérieurs d'un cran pour insérer la nouvelle.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Pour agrandir, ce n'est pas malloc(), mais realloc().
0
Mouthon Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   143
 
Oup, pardon ;)
0
kratosmindfreak Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
Mouthon
+1

alors pour placer x dans la bonne position il faure faire un boucle qui traverse le tableau element par element puis il compare les elements de tableau avec x si x est inferieur a un element de tableau il sorte de la boucle et il decale les elements a partir de cette position

:D
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
Grosso modo, deux méthodes :
La 1ère t'a déjà été exposée.
La 2nde, c'est utiliser une liste doublement chaînée. Cela te permettra d'insérer des éléments sans tout chambouler.
C'est plus performant pour les grands tableaux.

Google is your friend
0
Ateuf Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Voilà la solution ! je l'ai essayé et ça marche ;)
si vs ne comprenez pas une instruction ou quelque chose je suis là :)

{ int t [50];
int t2[50];
int i,j,x,p,n,aux,test,k;

printf ("n= ");
scanf ("%d",&n);
for (i=0;i<n;i++)
{
printf ("t[%d]= ",i);
scanf ("%d",& t[i]);
}
do
{
test=0;
for (i=0;i<n-1;i++)
if (t[i]>t[i+1])
{
aux=t[i];
t[i]=t[i+1];
t[i+1]=aux;
test=1;
}
}
while (test ==1);

for (i=0;i<n;i++)
printf ("%d\t", t[i]);

printf ("\n");
printf ("x= ");
scanf ("%d",&x);
test=0;
i=0;
do
{
if (x<t[i])
{
p=i;
test=1;
k=p;
}
i++;
}
while (test!=1);

for (i=0;i<p;i++)
t2[i]=t[i];
t2[p]=x;

for (k=p+1;k<n+1;k++)
t2[k]=t[k-1];

for (i=0;i<n+1;i++)
printf ("%d\t", t2[i]);
0