@kusterdoc

Как переставить элементы в двумерном массиве?

Как переставить элементы в двумерном массиве до определенного элемента? Без использования std!

Пример:
Имеем двумерный массив:
0 1 2
5 8 3
4 4 2

Хотим получить для n = 8 (считаем от 0):
2 4 4
3 8 5
2 1 0 – полностью перевернут

Если n=3 (считая с 0), то меняем только первые четыре элемента массива т.е на выходе:
5 2 1
0 8 3
4 4 2 – поменяны местами элементы с 0 по 3й (нулевой на 3й, 1й на 2)
  • Вопрос задан
  • 1331 просмотр
Пригласить эксперта
Ответы на вопрос 1
Если массив на стеке, то подойдет такой способ:
const int n  = 5;
    int arr[3][3] = {0, 1, 2, 5, 8, 3, 4, 4, 2};
    int *ptr = reinterpret_cast<int *>(arr);

    for(int i = 0, c = (n + 1) / 2; i < c; ++i) {
        int tmp = ptr[i];
        ptr[i] = ptr[n - i];
        ptr[n - i] = tmp;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 11:20
5000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект