fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5. int *A = (int *)malloc(2000 * sizeof(int));
  6. int *B = (int *)malloc(2000 * sizeof(int));
  7. int n = 0, m = 0;
  8. int val;
  9.  
  10. // Baca array A hingga -9
  11. while (scanf("%d", &val) == 1 && val != -9) {
  12. A[n++] = val;
  13. }
  14.  
  15. // Baca array B hingga -9
  16. while (scanf("%d", &val) == 1 && val != -9) {
  17. B[m++] = val;
  18. }
  19.  
  20. // Alokasi array hasil
  21. int *C = (int *)malloc((n + m) * sizeof(int));
  22. int i = 0, j = 0, k = 0;
  23.  
  24. // Merge dua array yang sudah terurut
  25. while (i < n && j < m) {
  26. if (A[i] <= B[j])
  27. C[k++] = A[i++];
  28. else
  29. C[k++] = B[j++];
  30. }
  31. while (i < n) C[k++] = A[i++];
  32. while (j < m) C[k++] = B[j++];
  33.  
  34. // Cetak hasil
  35. for (int x = 0; x < k; x++) {
  36. if (x > 0) printf(" ");
  37. printf("%d", C[x]);
  38. }
  39. printf("\n");
  40.  
  41. free(A);
  42. free(B);
  43. free(C);
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0s 5320KB
stdin
2 5 9 -9
4 8 10 15 20 -9
stdout
2 4 5 8 9 10 15 20