Как сделать цикличиский сдвиг двумерного массива на n элементов вниз и вправо через if С++
cout << "Where does the matrix shift - to the right(0), down(1) ? " << endl;
int a;
cin >> a;
if (a == 0)
{
cin >> a;
for (int i = 0; i < a; i++) {
for (int j = 0; j < n; j++)
{
temp = arr[j][0];
for (int g = 0; g < m - 1; g++) // условие для смещения влево
arr[j][g] = arr[j][g + 1];
arr[j][m - 1] = temp;
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
cout << arr[i][j] << " ";
cout << endl;
}
}
Ответы (1 шт):
Автор решения: Miracle-
→ Ссылка
for (std::size_t j = cols - 1; j > 0; --j)//right
std::swap(arr[0][j], arr[0][j - 1]);
for (std::size_t i = 0; i < rows - 1; ++i)//down
std::swap(arr[i][0], arr[i + 1][0]);
С остальным как-нибудь сами.
P.S: rows -> строки, cols -> столбцы