Ciao a tutti, ho un dubbio esistenziale sugli array e i puntatori.
Il testo dell'esercizio e' il seguente: Scrivere un programma in linguaggio C che, acquisito da tastiera un vettore di N numeri, ne ruoti circolarmente il contenuto di M posizioni e visualizzi la configurazione finale. Il verso della rotazione ed il valore di M sono richiesti come input.
Ho tentato di risolvere il problema con un ciclo for:
se per esempio decido di fare uno shift di 3 posizioni e il vettore e' di [6], gli ultimi 3 elementi del vettore vengono shiftati correttamente di 3 posizioni. i primi 3 invece non risultano shiftati e viene riportato nel print questo numero: -858993460codice:if (verso == 1) { // SHIFT VERSO SINISTRA printf("Vettore shiftato verso sinistra: \n"); for (i = 0; i < N; i++) { vet[i] = vet[i + posizioni]; x = vet[i]; printf("Elemento %d: %d\n", i + 1, x); } }
Scusate per il linguaggio non preciso, sono alle prime armi
PS ovviamente non ho riportato tutto il codice completo ma includeva la lettura delle dimensioni del vettore (N), l'acquisizione degli elementi del vettore, la richiesta all'utente del numero di posizioni da shiftare (posizioni), la richiesta all'utente del verso di rotazione (1 = sinistra, 2 = destra)


Rispondi quotando
