Witam serdecznie. Próbuję napisać program który ma za zadanie przesunięcie cykliczne wartości w tablicy w prawo o zadaną wartość k. Może mi ktoś wytłumaczyć jak to się dzieje, że w drugiej pętli for źle mi przepisuje wartości. Jak wyświetlę "i-k" to wyświetla dobrze od 0 do 4, a jak wyświetlę "tab[i-k]" to wyświetla 12312 i te wartości zostają w tej tablicy i wynik końcowy jest źle.
#include <stdio.h>
#include <stdlib.h>
void przesuniecie (int k){
int tab[]={1,2,3,4,5,6,7,8};
int pom[k];
int i,j=0;
for (i=8-k;i<8;i++){
pom[j]=tab[i];
j++;
}
for(i=k;i<8;i++){
printf("%d",i-k);
tab[i]=tab[i-k];
}
printf("\n");
for(i=0;i<k;i++)
tab[i]=pom[i];
for(i=0;i<8;i++)
printf("%d",tab[i]);
}
int main(int argc, char *argv[]) {
int k=3;
przesuniecie(k);
return 0;
}