[c++]przesuwanie tablicy o n elementow

0
void sortuj(char *tablica, char *tablica_tmp, int n)
{ 
  cout << "Podaj przesuniecie: ";
  cin >> p;
 
 cout << "\n";
 
 cout << "Przesuniecie w prawo:\n";
 
            for (int i = 0; i < n; ++i) 
            {    
              tablica_tmp[i+1] = tablica[i];
              if(i == 4)
              {
               tablica_tmp[0] = tablica[i];
              }
            }
            
            for(int i = 0; i < n; i++)
            cout << tablica_tmp[i] << "  ";
            
 cout << "\n\n";
   
cout << "Przesuniecie w lewo:\n"; 
  
            for (int i = 0; i < n; ++i) 
            {    
              tablica_tmp[i-1] = tablica[i];
              if(i == 0)
              {
               tablica_tmp[4] = tablica[i];
              }
            }
            
            for(int i = 0; i < n; i++)
            cout << tablica_tmp[i] << "  ";
 
}

Napisałem funkcje, która przesuwa elementy w tablicy o 1 w prawo i w lewo. Jak zrobić żebym mógł wybierać wartość przesunięcia?

0

Co rozumiesz przez wartość przesunięcia? Jeśli chcesz przesuwać tablicę i więcej miejsc niż tylko o jedno musisz pętle przepisujące ująć w jeszcze jedną pętle.

0

Własnie chodzi mi o to ze w zmiennej p bede przechowywal wartosc przesuniecia np.2

czyli:

input 1 2 3 4 5
out 45123

czyli przesuniecie o 2 w prawo

0

jedno zadań ze spoja zgaduje?
możesz to prosto zrobić :)

czytasz o ile chcesz przesunąć i robisz tak wypisujesz od końca o tyle ile masz przesunąć dam na przykładzie

mamy 5 element owy zbiór : 1 2 3 4 5 chcemy go przesunąć o 3
więc 5-3 = 2
więc zaczynamy od 2-elementu do 4 więc wyświetlamy 3 4 5 no i potem wyświetlamy od 0 do 2 czyli 1 2 a końcowy wynik to
3 4 5 1 2
proste i szybkie :)

0

hmmm. a moglbys to jeszcze jasniej wytlumaczyc. :d
PS. elementow nie koniecznie musi byc 5

0

wiem ,że nie musi być koniecznie 5 dlatego napisałem ,że odejmuje od MAX - tyle_ile_przesuwamy
i masz na przykładzie 5-3==2
a więc robimy tak
for(int i=wynik_z_odejmowania;i<n;i++)
{
cout << tab[i] << " ";
}

potem druga pęntla która wyświetla od 0 do wynik_z_odejmowania :) raczej jasno wytłumaczyłem :) jeżeli coś się pomyliłem o 1 to popraw :) ale idea jest prosta ;)

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