Witam,
chciałem użyć funkcji rotate() do rotacji elementów tablicy. I rotacja w prawo bardzo fajnie wychodzi, natomiast w lewo nie chce działać nawet przy ujemnych parametrach. Ktoś wie dlaczego? Zamieszczam kod mojego programu:
#include <iostream>
#include <algorithm>
#include <conio.h>
using namespace std;
int main()
{
int n ; //ilość elementów tablicy
const int k = 1 ; //przesuniecie
int i ;
const zakres = 5;
//if(k>n) k%=n;
int tab[zakres] ;
cout << "Podaj ilosc elementow tablicy: "; cin >> n ;
// cout << "Podaj przesuniecie: " ; cin >> k ;
cout << endl;
for(i=0; i<n; i++)
{
cout << "Wprowadz " << i << " element: ";
cin >> tab[i] ;
}
cout << "Oryginalna tablica: " << endl;
for (i = 0; i<n; i++)
{
cout << tab[i] << " ";
}
cout << endl << "ROTACJA W PRAWO:" << endl;
rotate(tab, tab+k, tab+n) ;
for (i=0; i<n; i++)
{
cout << tab[i] << " ";
}
cout << endl << "ROTACJA W LEWO:" << endl;
rotate(tab, tab-(k+1), tab+n) ;
for (i=0; i<n; i++)
{
cout << tab[i] << " ";
}
getch();
return 0;
}