Cześć, chcę napisać program, który przesuwa wartości w tablicy jednowymiarowej o zadaną liczbę pozycji w prawo w sposób cykliczny.
To znaczy, że jeżeli mam tablicę [1,2,3,4,5] i dokonam przesunięcia o p=2 to w wyniku powinienem dostać [4,5,1,2,3] - to znaczy element o indeksie n-1 wchodzi na pozycję o indeksie 0.
Konkretnie napisałem już program, który przesuwa mi elementy tablicy w prawo natomiast robi to tylko o 1 cykl, a ja chciałbym, aby to robił o wybraną przeze mnie ilość cykli. Jakieś wskazówki ?
void przesun(int tab[], int n, int p)
{
int i,temp;
for (i = 0; i < n ; i++)
{
temp=tab[n-1];
tab[n-1]=tab[i];
tab[i]=temp;
}
}
int main()
{
int TAB[5]={1,2,3,4,5};
int i;
for ( i = 0 ; i < 5; i++)
{
printf("%d\n",TAB[i]);
}
puts("\n");
przesun(&TAB,5,1);
for ( i = 0 ; i < 5; i++)
{
printf("%d\n",TAB[i]);
}
return 0;
}