Cześć, mam pytanie dot. tego kodu. Mianowicie w funkcji main chcę, aby tablica, która powstałą po funkcji przesunięcie miała przesunięte elementy o 1 w prawo oraz ostatni element znalazł się na miejscu indeksu 0. Mam problem z tym, że po funkcji przesunięcie dostaje tablicę w postaci z którą mam problem w przekształceniu jej do funkcji dwuwymiarowej aby na końcu output tej tablicy był w postaci tablicy 4x4.
Z góry dziękuje za pomoc :)
#include <iostream>
using namespace std;
#define N 4
#define M 4
void przesuniecie(int rows, int cols, int arr[N][M]) {
int top = 0, bottom = rows - 1, left = 0, right = cols - 1;
int dir = 1; //kierunek w ktorym tablica bedzie zmieniana
while (top <= bottom && left <= right) {
if (dir == 1) // z lewej do prawej
{
for (int i = left; i <= right; ++i)
{
cout<<arr[top][i] << " ";
}
++top;
dir = 2;
}
else if (dir == 2) // z gory do dolu
{
for (int i = top; i <= bottom; ++i)
{
cout<<arr[i][right] << " ";
}
--right;
dir = 3;
}
else if (dir == 3) // z prawej do lewej
{
for (int i = right; i >= left; --i)
{
cout<<arr[bottom][i] << " ";
}
--bottom;
dir = 4;
}
else if (dir == 4) // z dolu do gory
{
for (int i = bottom; i >= top; --i)
{
cout<< arr[i][left] << " ";
}
++left;
dir = 1;
}
}
}
int main() {
int mat[N][M] = { { 1, 2, 3, 4 },
{ 12, 13, 14, 5 },
{ 11, 16, 15, 6 },
{ 10, 9, 8, 7 } };
przesuniecie(N, M, mat);
return 0;
}