Как создать метод на месте для транспонирования матрицы только с помощью указателей? - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь создать функцию в C, которая использует только указатели и транспонирует матрицу на месте. Я не могу этого сделать. Вот код, который у меня есть:

    void transpose(int matrix[ROWS][COLS]) {
       for (int i = 0; i < 5; i++) {
         for (int j=0;j<5;j++) {
              int temp = *(*(matrix + i) + j);
              *(*(matrix + i) + j) =  *(*(matrix + j) + i);
              *(*(matrix + j) + i) = temp;
           }
        }
      }

1 Ответ

0 голосов
/ 28 октября 2019

Вы меняете каждую вещь дважды. Второй цикл должен быть для j for (int i = 0; i < 5; i++) { for (int j=0;j<i;j++) { int temp = *(*(matrix + i) + j); *(*(matrix + i) + j) = *(*(matrix + j) + i); *(*(matrix + j) + i) = temp; } }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...