Buon pomeriggio a tutti, ho un problema con lo shift verso sinistra di un vettore.
codice:/*Shiftare verso sinistra gli elementi di un vettore (es: input: 1,2,3,4 output: 2,3,4,1)*/ #include<iostream> using namespace std; void InputNumerosita (int &n) //Numerosita inserita da utente { cout<<"Quanti numeri vuoi inserire? "; cin>>n; while(n<0) { cout<<"Errore reinserisci: "; cin>>n; } } void InputVettore (int v[], int n) //Inserimento valori del vettore { int i; for(i=0;i<n;i++) { cout<<"Inserisci il " << i+1 << " ^ valore del vettore: "; cin>>v[i]; } } void VisuaVettore (int v[], int n) //visualizzazione valori del vettore { cout<<endl<<"Questi sono i valori del nuovo vettore: "<<endl; int i; for(i=0;i<n;i++) { cout<<v[i]<<"\t"; } } void shiftsx (int v[], int n) //PROBLEMA SHIFT { int i; for(i=0;i<n-1;i++) { v[i]=v[i+1]; } v[n-1]=0; } main() { const int dim=50; int v[dim]; int n; InputNumerosita(n); InputVettore(v,n); shiftsx(v,n); VisuaVettore(v,n); return 0; }
Il programma parte e svolge tutto perfettamente, ma lo shift no.
(es: input: 1,2,3,4 output: 2,3,4,1)
2016-08-25_152243.jpg
come potete vedere da l'immagine qui sopra, i dati di output non sono come nell'esempio.
inserisco 1,2,3,4 e l'output è 2,3,4,0
so di aver messo nel codice v[n-1]=0 ma provandole tutte ho lasciato cosi.
Spero di essermi spiegato, gradirei una mano!

Rispondi quotando
