Programme de concaténation de tableaux en C

Pour concaténer deux tableaux, nous avons besoin d'au moins trois variables de tableau. Nous prendrons deux tableaux, puis en fonction d'une contrainte, nous copierons leur contenu dans un seul tableau. Ici, dans cet exemple, nous prendrons deux tableaux, l'un contiendra des valeurs paires et un autre contiendra des valeurs impaires et nous concatons pour obtenir un tableau.

Algorithme

Voyons d'abord quelle devrait être la procédure étape par étape de ce programme -

START
   Step 1 → Take three array variables A, E, and O
   Step 2 → Store even values in array E
   Step 3 → Store odd values in array O
   Step 4 → Start loop from 0 to sizeof(E)
   Step 5 → Copy E[n] to A[index]
   Step 6 → Start loop from 0 to sizeof(O)
   Step 7 → Copy E[n] to A[index]
   Step 8 → Display A
STOP

Pseudocode

Voyons maintenant le pseudocode de cet algorithme -

procedure concate_array(A)

   Array E, O
   index ← 0
   FOR EACH value in E DO
      A[index] ← E[n]
      INCREMENT index
   END FOR
   
   FOR EACH value in O DO
      A[index] ← O[n]
      INCREMENT index
   END FOR
   DISPLAY A

end procedure

la mise en oeuvre

La mise en œuvre du pseudocode dérivé ci-dessus est la suivante -

#include <stdio.h>

int main() {
   int array[10];
   int even[5] = {0, 2, 4, 6, 8};
   int odd[5]  = {1, 3, 5, 7, 9};
   
   int loop, index, e_len, o_len;
   
   e_len = o_len = 5;
   
   index = 0;
 
   for(loop = 0; loop < e_len; loop++) {
      array[index] = even[loop];
      index++;
   }
 
   for(loop = 0; loop < o_len; loop++) {
      array[index] = odd[loop];
      index++;
   }

   printf("\nEven -> ");
   
   for(loop = 0; loop < e_len; loop++)
      printf(" %d", even[loop]);
   
   printf("\nOdd  -> ");
   
   for(loop = 0; loop < o_len; loop++)
      printf(" %d", odd[loop]);

   printf("\nConcat -> ");
   
   for(loop = 0; loop < 10; loop++)
      printf(" %d", array[loop]);

   return 0;
}

La sortie devrait ressembler à ceci -

Even ->  0 2 4 6 8
Odd  ->  1 3 5 7 9
Concat ->  0 2 4 6 8 1 3 5 7 9