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 -
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
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:
- Tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
4 réponses
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.
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.
fiddy
Messages postés
11069
Date d'inscription
Statut
Contributeur
Dernière intervention
1 846
Pour agrandir, ce n'est pas malloc(), mais realloc().
Mouthon
Messages postés
524
Date d'inscription
Statut
Membre
Dernière intervention
143
Oup, pardon ;)
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
+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
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
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
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]);
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]);