Заданный вектор. Инвертировать (переписать в обратном порядке) - C (СИ)
Формулировка задачи:
Заданный вектор. Инвертировать (переписать в обратном порядке).
Решение задачи: «Заданный вектор. Инвертировать (переписать в обратном порядке)»
textual
Листинг программы
void reverseMeDaddy(int * arr, const int size)
{
int * tmp = malloc(size*sizeof(int)); // явный каст к (int*) в Си не нужен
for (int i = 0; i < size; i++)
{
tmp[i] = arr[size-i];
}
for (int i = 0; i < size; i++)
{
arr[i] = tmp[i];
}
free(tmp);
}
Объяснение кода листинга программы
- В функции reverseMeDaddy определен массив arr типа int и размерности size.
- Выделен дополнительный массив tmp типа int, размерностью size, с помощью функции malloc.
- В цикле for, начиная с i=0 и до i<size, элементы массива arr копируются в массив tmp в обратном порядке.
- В цикле for, начиная с i=0 и до i<size, элементы массива arr заменяются на соответствующие элементы массива tmp.
- Массив tmp освобождается с помощью функции free.