Tableaux

barhoum -  
DarkAurora Messages postés 443 Statut Membre -
Bonjour,dans 1 tableau simple dimention ; comment je peut insérrer 0 aprés chaque cinq 1 sucsessif
exp :
etat initial: 3|1|1|1|1|1|2|1|1|
etat final: 3|1|1|1|1|1|0|2|1|1|
merci de m'avoir repondre

1 réponse

DarkAurora Messages postés 443 Statut Membre 27
 
tout d'abord je pense qu'il serait judicieux d'utiliser une allocation mémoire pour un tableau dynamique pour que cela évite les erreurs d'allocation mémoire

ensuite tu pourrais faire
int i,k,max,tabbis[](malloc),compt,retiens;
//1er boucle permettant repérer la suite de "1"
for(i=0;i<max;i++)
{
if(tab[i]==1)
{
compt=compt+1;
}
else
{
compt=compt-1;
}
//test si il y a 5 "1" puis retiens l'indice ou doit se stocker le "1"
if(compt==5)
{
retiens=i+1;
}
}
//initialisation de l'indice k à 0
k=0;
//boucle permettant de stocker dans un autre tableau les éléments du 1er tableau à partir de la suite des 5 "1"
for(i=retiens;i<max;i++)
{
tabbis[k]=tab[i];
k++;
}
//on stock le "0" la ou tu le souhaitez derrière les 5 "1"
if(retiens!=-1)
{
tab[retiens]=0;
}
//on réinitialise k à 0
k=0;
//et on restock les éléments du tableau à la suite du 0
for(i=retiens+1;i<max+1;i++)
{
tab[i]=tabbis[k];
k++;
}

voila, ce ne doit sûrement pas la solution la plus simple mais je pense que cela marche bien
si tu a des question ou si d'autres personnes aurait vu la solution d'un autre oeil je serais ravis qu'ils me critiques

0