fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. int n1, n2, i, j, k;
  5.  
  6. // Ввод размеров массивов
  7. printf("Введите размер первого массива: ");
  8. scanf("%d", &n1);
  9. printf("Введите размер второго массива: ");
  10. scanf("%d", &n2);
  11.  
  12. int arr1[n1], arr2[n2], merged[n1 + n2];
  13.  
  14. // Ввод первого массива
  15. printf("Введите элементы первого массива (упорядоченные): ");
  16. for (i = 0; i < n1; i++) {
  17. scanf("%d", &arr1[i]);
  18. }
  19.  
  20. // Ввод второго массива
  21. printf("Введите элементы второго массива (упорядоченные): ");
  22. for (i = 0; i < n2; i++) {
  23. scanf("%d", &arr2[i]);
  24. }
  25.  
  26. // Слияние массивов
  27. i = 0; j = 0; k = 0;
  28. while (i < n1 && j < n2) {
  29. if (arr1[i] < arr2[j]) {
  30. merged[k++] = arr1[i++];
  31. } else {
  32. merged[k++] = arr2[j++];
  33. }
  34. }
  35.  
  36. // Добавление оставшихся элементов из первого массива
  37. while (i < n1) {
  38. merged[k++] = arr1[i++];
  39. }
  40.  
  41. // Добавление оставшихся элементов из второго массива
  42. while (j < n2) {
  43. merged[k++] = arr2[j++];
  44. }
  45.  
  46. // Вывод результирующего массива
  47. printf("Результирующий массив после слияния: ");
  48. for (i = 0; i < n1 + n2; i++) {
  49. printf("%d ", merged[i]);
  50. }
  51. printf("\n");
  52.  
  53. return 0;
  54. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Введите размер первого массива: Введите размер второго массива: Введите элементы первого массива (упорядоченные): Введите элементы второго массива (упорядоченные): Результирующий массив после слияния: