Dato in input un array di 5 caratteri A e un numero intero N, produce in output l’array B che contiene gli elementi di A spostati a destra di N posizioni (l’ultimo elemento, se spostato a destra di un posto, si troverà in prima posizione). Ad es, se A={a,b,c,d,e} e N = 3, allora B={c, d,e, a, b}. Nel caso in cui N sia <0, allora lo spostamento è verso sinistra.
Devo svolgere quest'esercizio, io ho buttato giù questo programma, il vettore slitta con successo ma si annulla quando slitta il primo o l'ultimo carattere, per esempio se il vettore è A={1,2,3,4,5} se decido di spostare di N = 1 ottengo B={0,1,2,3,4}, grazie a tutti
#include <stdio.h>
#define SIZE 5
int main () {
static int v[SIZE]; /*vettore di LUNG elementi, indicizzati da
0 a LUNG-1 */
int i;
for (i = 0; i < SIZE; i++) {
printf("Inserisci l'elemento di indice %d: ", i);
scanf("%d", &v[i]);
}
printf("Indice Elemento\n");
for (i = 0; i < SIZE; i++) {
printf("%6d %8d\n", i, v[i]);}
int s;
printf("Indicare di quale valore devono essere spostati gli oggetti\n");
scanf ("%d",&s);
printf("Indice Elemento\n");
for (i = 0; i < SIZE; i++){
printf("%6d %8d\n", i, v[i+s]);}
system("PAUSE");
return 0;
}