[RISOLTO]Spostare elementi di un Array in C

di il
2 risposte

[RISOLTO]Spostare elementi di un Array in C

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;
}

2 Risposte

  • Re: [RISOLTO]Spostare elementi di un Array in C

    
    void vector_left_rotate(int v[],int sz)
    {
        int tmp = v[0];
        int i;
        for ( i = 0; i < sz - 1 ; i++)
            v[i] = v[i+1];
        v[sz-1] = tmp;
    }
    
    int main()
    {
        int vect[5] = {1,2,3,4,5};
    
        int rotate = 3;
    
        int k;
        for (k = 0; k < rotate ; k++)
        {
            vector_left_rotate(vect,5);
        }
    
        for (k = 0; k < 5 ; k++)
        {
            printf("%d\n",vect[k]);
        }
        return 0;
    
    }
    Ora implementa la rotazione verso destra.

    Non starai mica usando quella cosa obrobriosa ed obsoleta quale sia il dev-c++
  • Re: [RISOLTO]Spostare elementi di un Array in C

    Si uso il dev-c++ ma inserendo la riga di ultrasound tutto si risolve, grazie mille
Devi accedere o registrarti per scrivere nel forum
2 risposte