Decalage
mb42
Messages postés
553
Statut
Membre
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
on a un tableau qui consititue de carectere
et je dois inserer une valeur a un indice bien defini
a titre d'exemple le tableau contient
tab 1 4 6 7 3 9
j'insere la valeur 2 a l'indice 3
donc le resultat doit etre comme ca
1 4 6 2 7 3 9
don on a un ecrasement
povez me corriger mon programme :
#include<stdio.h>
#include<conio.h>
main()
{
int tab[50],i,taille,val,indice;
do
{
printf("donner la taille du tableau");
scanf("%d",&taille);
}
while((taille<=0)||(taille>=50));
for(i=0;i<taille;i++)
{
printf("donner la valeur %d du tableau",i);
scanf("%d",&tab[i]);
}
printf("siai un valeur");
scanf("%d",&val);
printf("donner l'emplacement ou la valeur doit etre saisie");
scanf("%d",&indice);
for(i=0;i<=taille;i++)
{
if(i==indice)
tab[i]=val;
tab[i+1]=tab[i];
}
for(i=0;i<taille;i++)
{
printf("le valeur du tableau est %d\n",tab[i]);
}
getch();
}
merci d'avance
on a un tableau qui consititue de carectere
et je dois inserer une valeur a un indice bien defini
a titre d'exemple le tableau contient
tab 1 4 6 7 3 9
j'insere la valeur 2 a l'indice 3
donc le resultat doit etre comme ca
1 4 6 2 7 3 9
don on a un ecrasement
povez me corriger mon programme :
#include<stdio.h>
#include<conio.h>
main()
{
int tab[50],i,taille,val,indice;
do
{
printf("donner la taille du tableau");
scanf("%d",&taille);
}
while((taille<=0)||(taille>=50));
for(i=0;i<taille;i++)
{
printf("donner la valeur %d du tableau",i);
scanf("%d",&tab[i]);
}
printf("siai un valeur");
scanf("%d",&val);
printf("donner l'emplacement ou la valeur doit etre saisie");
scanf("%d",&indice);
for(i=0;i<=taille;i++)
{
if(i==indice)
tab[i]=val;
tab[i+1]=tab[i];
}
for(i=0;i<taille;i++)
{
printf("le valeur du tableau est %d\n",tab[i]);
}
getch();
}
merci d'avance
Configuration: Windows XP Firefox 3.0.14
3 réponses
-
Bonjour,
C'est dans ta boucle que cela ne va pas, car tu écrases tab[i] par val avant de le passer à l'indice suivant...
Essaie ça :
int temp; for(i=0; i<=taille; i++) { if(i>=indice) { temp = tab[i]; tab[i]=val; val = temp; }
Xavier -
ca marche pas car
pour mon exemple
il m'affiche
1 4 6 2 7 3
el n'affiche pas 9 -
Bonjour,
C'est normal, car ta fonction d'affichage s'arrête à taille, alors qu'on vient de rajouter une valeur... Donc il faut que tu affiches une valeur de plus.
Xavier