Указатели: Создать динамический массив из заданных, путем их объединения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны два динамических массива размерами n и m. Создать динамический массив из заданных, путем их объединения. При помощи указателей.

Решение задачи: «Указатели: Создать динамический массив из заданных, путем их объединения»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
 
int main()
{
    int n=10,m=5;
    int * arr1=(int*)malloc(n*sizeof(int));
    int * arr2=(int*)malloc(m*sizeof(int));
    int i,j;
    for(i=0;i<n;++i){
        *(arr1+i)=rand()%10;
        printf("%d ",*(arr1+i));
    }
    printf ("\n\n");
    for(i=0;i<m;++i){
        *(arr2+i)=rand()%10;
        printf("%d ",*(arr2+i));
    }
    printf ("\n\n");
 
    int * arr3=(int*)malloc((m+n)*sizeof(int));
    
    for(i=0;i<n;++i)
        *(arr3+i)=*(arr1+i);
        for(i=0;i<m;++i)
        *(arr3+n+i)=*(arr2+i);
    for(i=0;i<(m+n);++i)
        printf("%d ",*(arr3+i));
    printf ("\n\n");
        free(arr1);free(arr2);free(arr3);
    system("pause");
}

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. В начале программы с помощью функций malloc выделяется память под три динамических массива: arr1, arr2 и arr3.
  2. Затем в циклах заполняются значениями первые два массива. Для этого используется генератор случайных чисел rand().
  3. После заполнения, значения выводятся на экран с помощью функции printf.
  4. Затем, создается третий массив arr3, который будет объединять значения из arr1 и arr2.
  5. Используя два вложенных цикла, значения из arr1 и arr2 копируются в arr3.
  6. После этого, значения из объединённого массива arr3 выводятся на экран с помощью функции printf.
  7. В конце программы, с помощью функции free освобождается память, выделенная под массивы, а также с помощью команды system(pause) приостанавливается выполнение программы до нажатия клавиши.

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы