Cách trộn hai mảng thành một mảng trong C



Bài tập C: trộn hai mảng một chiều thành một mảng một chiều

Bài tập C này có nhiều cách gọi: trộn hai mảng, nối hai mảng, ghép hai mảng hay cộng hai mảng, … Dù có nhiều cách gọi khác nhau đi chăng nữa thì đây cũng chỉ là một bài tập để nối ghép các giá trị của hai mảng để thành một mảng duy nhất.

Bài tập là trộn hai mảng một chiều: một mảng chẵn, một mảng lẻ thành một mảng một chiều có thứ tự tăng dần.

Qua các chương trước chúng ta đã biết cách sao chép mảng thì với bài tập này mình tin rằng các bạn sẽ hiểu và làm được.

Chương trình C

Dưới đây là chương trình C để giải bài tập trộn mảng trong C:

#include 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("Tron hai mang thanh mot mang:\n\n");
   printf("\nMang chan -> ");
   
   for(loop = 0; loop < e_len; loop++)
      printf(" %d", even[loop]);
   printf("\nMang le  -> ");
   
   for(loop = 0; loop < o_len; loop++)
      printf(" %d", odd[loop]);   printf("\nMang sau khi tron -> ");
   
   for(loop = 0; loop < 10; loop++)
      printf(" %d", array[loop]);
   
   return 0;
}

Biên dịch chương trình C trên sẽ cho kết quả:

Trộn hai mảng thành một mảng trong C
bai-tap-mang-mot-chieu-trong-c.jsp