Fusion de deux tableaux

Fermé
oumayma - Modifié par Chris 94 le 11/11/2014 à 01:07
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 11 nov. 2014 à 01:13
bonjour, je voudrais fusionner 2 tableaux dans un 1 seul en éliminant les nombre qui se répètent.voici ce que j'ai réalisé .merci

int t[n],t1[nb]
int m=n+nb;
 
int fus[m];
for(i=0;i<n;i++) { fus[i]=t[i];
                     }
for(i=0;i< nb;i++)
{
for(j=0;j< n ;j++)
{
   if(fus[j] !=  t1[i])
   compt=0;
   else{
   compt=1;
   j=j+n;}  
  
    }
    if(compt==0){
    fus[j+n ]=t1[i];}
}

c'est la partie dont j'ai le pb merci pour votre aide
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
11 nov. 2014 à 01:13
Bonjour,

Plutôt que de faire un autre post, je t'invite à rester sur le même...
Je ferme l'autre.

int t[n],t1[nb]
int fus[m];
Il manque un ; Et ce n'est pas bon de faire comme ça en C. Il faut indiquer la taille avec un nombre, pas une variable... Si la taille tu ne la connais pas à l'avance, je te conseille d'utiliser l'allocation dynamique.

for(i=0;i<n;i++) { fus[i]=t[i];
}

On suppose que le tableau t ne contient pas de doublons ?

if(fus[j] != t1[i])
compt=0;
else{
compt=1;
j=j+n;}

Ca manque de logique...
Dès qu'un élément du tableau t1 n'est pas présent dans fus alors on réinitialise le compteur à 0. Généralement, on met le compteur à 0 en début de boucle for (je te laisse voir lequel). Ensuite, dès qu'il y a un élément présent dans fus, alors on effectue compteur=compteur+1 (note, tu aurais pu juste mettre un flag "doublon").
j=j+n;
Surtout pas... C'est la variable de ta boucle for...

if(compt==0){
fus[j+n ]=t1[i];}
}

Oui pour le if, mais non pour l'affectation. Si tu fais ainsi tu te retrouveras avec un tableau avec des trous. En plus les trous ne seront pas initialisés... Il faut que tu te crées un compteur spécifique pour ton tableau fus. Et tu l'incrémentes dès que tu stockes un élément dans le tableau. Je te laisse réfléchir à ça.

Merci d'utiliser la balise "code" la prochaine fois comme dans l'exemple ci-dessous :
<code c>ici tu mets ton code</code>
0