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!