Tableau

Fermé
futur-genie Messages postés 8 Date d'inscription vendredi 28 décembre 2012 Statut Membre Dernière intervention 27 octobre 2013 - 30 janv. 2013 à 11:16
Ateuf Messages postés 5 Date d'inscription samedi 2 février 2013 Statut Membre Dernière intervention 17 mars 2013 - 3 févr. 2013 à 14:39
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

4 réponses

Mouthon Messages postés 524 Date d'inscription mardi 16 octobre 2012 Statut Membre Dernière intervention 13 juin 2014 143
Modifié par Mouthon le 30/01/2013 à 12:21
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
30 janv. 2013 à 23:10
Pour agrandir, ce n'est pas malloc(), mais realloc().
0
Mouthon Messages postés 524 Date d'inscription mardi 16 octobre 2012 Statut Membre Dernière intervention 13 juin 2014 143
2 févr. 2013 à 04:48
Oup, pardon ;)
0
kratosmindfreak Messages postés 43 Date d'inscription mercredi 23 janvier 2013 Statut Membre Dernière intervention 1 février 2013
30 janv. 2013 à 21:36
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
Modifié par fiddy le 30/01/2013 à 23:12
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 samedi 2 février 2013 Statut Membre Dernière intervention 17 mars 2013
3 févr. 2013 à 14:39
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