profile
Опубликовано 6 лет назад по предмету Информатика от innessabest

Написать программу, которая пользуясь двумя указателями на массивы целых чисел, копирует один массив в другой так, чтобы во втором массиве элементы находились в обратном порядке.

на С

  1. Ответ
    Ответ дан CSharper

    #include <stdlib.h>

    #include <malloc.h>


    void print_array(int* numbers,int count)// Функция для вывода элементов массива

    {

    for(int i = 0;i<count;i++)

    {

    printf("%d ",numbers[i]);

    }

    printf("n");

    }


    void rechange(int *first_array,int *second_array,int count)// Функция для перезаписи одного массива в другой.

    //Элементы первого массива запишутся во второй в обратном порядке.

    {

    int x = count - 1;

    for(int i = 0;i<count;i++)

    {

    second_array[x--] = first_array[i];

    }

    }


    int main(int argc, char** argv) {

    const int ARRAY_ELEMENTS_COUNT = 15;

    int *first_array = (int*)malloc(sizeof(first_array) * ARRAY_ELEMENTS_COUNT); // Выделить память для первого массива

    int *second_array = (int*)malloc(sizeof(second_array) * ARRAY_ELEMENTS_COUNT); //Выделить память для второго массива

    for(int i = 0;i<ARRAY_ELEMENTS_COUNT;i++) // Заполняем массивы значениями

    {

    first_array[i] = std::rand() % 100 + 1;

    second_array[i] = std::rand() % 100 + 1;

    }

    print_array(first_array,ARRAY_ELEMENTS_COUNT); // Выводим первый массив

    print_array(second_array,ARRAY_ELEMENTS_COUNT); // Выводим второй массив

    rechange(first_array,second_array,ARRAY_ELEMENTS_COUNT);

    print_array(second_array,ARRAY_ELEMENTS_COUNT); // Выводим второй массив

    //в который записаны элементы первого массива в обратном порядке

    free(first_array); // Очищаем память

    free(second_array); // Очищаем память

    return 0;

    }

Самые новые вопросы