В общем, есть у меня одна функция, которая должна сдвигать столбцы матрицы вправо на К позиций. С квадратной матрицей( Например А(3,3) все работает нормально, допустим эта матрица =
1 2 3
4 5 6
7 8 9
И мы сдвигаем её вправо на 2 столбца и получаем:
2 3 1
5 6 2
8 9 3
Но если взять марицу не квадратную, например A(4,5), то оно выводит каку (я так понял функция вообще не работает с пятым столбцом)
Вот сама функция: как её переделать, что бы она работала и с не квадратными матрицами тоже?
void move(int* X, int n, int m, int K)
{
for (int i = 0; i < n; i++)
{
for (int t = 0; t < K % m; t++)
{
int buf = *(X + i * m + (n - 1));
for (int j = n - 1; j > 0; --j)
*(X + i * m + j) = *(X + i * m + (j - 1));
*(X + i * m + 0 ) = buf;
}
}
}