Przesuwanie wierszy o 1 w stronę końca tablicy

0

Hejka, jak zrobić aby wiersz 1 znalazł się na miejscu wiersza 2 i tak dalej aż ostatni wiersz znajdzie się na miejscu pierwszego?? podejrzewam że to ma związek z indeksami ale nadal nie wiem jak to zapisać :s

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int macierz [4][4];
    int i,j;
    for(i=0;i<=4;++i){
        for(j=0;j<=4;++j)
            macierz[i][j]= rand()%30;
    }

    for(i=0;i<4;++i){
        for(j=0;j<4;++j)
        printf("[%d][%d] = %d\n", i,j,macierz[i][j]);
    }
return 0;
}
0

Zależy do czego chcesz tego użyć, bo rozwiązań może być kilka, od kopiowania wierszy, przez tablicę wskaźników po tablicę indeksów. Wszystko zależy od zastosowania.

0

Jestem świeżak więc nie do końca nawet wiem jak odpowiedzieć na Twoje pytanie. Szukam jakiegokolwiek sposobu, który rozwiązałby mój problem : P

0

Nawiasem:

for(i=0; i<=4; ++i){
       for(j=0; j<=4; ++j)
           macierz[i][j]= rand()%30;
}

Przekraczasz zakresy tablicy.

0

@Zakręcony Kaczor: jeśli dobrze rozumiem o co chodzi, to potrzebujesz dane z ostatniego wiersza przenieść na początek macierzy. W ten sposób automatycznie pierwszy wiersz stanie się drugim, drugi trzecim itd. Racja?

0

Dokładnie tak @up. A z tym przekroczeniem tablicy to tak, wieem ale już było za późno na edycje postu.

0

Na początek zrób to w najprostszy sposób:

  • w pętli dla każdej kolumny tablicy:
    • zachowaj wartość ostatniej komórki w pomocniczej zmiennej,
    • w pętli od przedostatniego wiersza do pierwszego:
      • przepisz wartość bieżącej komórki do następnej,
    • przepisz wartość z pomocniczej zmiennej do pierwszej komórki.

To wszystko co trzeba zrobić. Wersja trudniejsza:

  • zachowaj zawartość całego ostatniego wiersza w pomocniczej zmiennej (np. w tablicy jednowymiarowej),
  • w pętli od przedostatniego wiersza do pierwszego:
    • przekopiuj dane z bieżącego wiersza do kolejnego,
  • przekopiuj dane z pomocniczej zmiennej do pierwszego wiersza.

Ten sposób nie bazuje na indeksach i pętlach zagnieżdżonych, a na kopiowaniu bloków pamięci.

0

Dzięki wielkie:D

1 użytkowników online, w tym zalogowanych: 0, gości: 1