Calcolare massimo di un vettore

di il
2 risposte

Calcolare massimo di un vettore

Devo calcolare il massimo di un vettore. Il problema è che quando scrivo il procedimento il programma non parte, mentre se tolgo solo la parte relativa al calcolo del massimo, il programma parte. Qualcuno può spiegarmi il motivo?
/*
Scrivere un programma che effettui le seguenti operazioni:
1.	 legge una sequenza di N numeri interi. Il valore N è inserito dall'utente. I numeri sono memorizzati in un vettore V1
2.	visualizza il vettore V1
3.	esegue uno spostamento (shift) a sinistra di una posizione del contenuto del vettore ovvero ogni elemento del vettore deve assumere il valore dell'elemento immediatamente successivo all'interno del vettore. L'elemento di indice N-1 deve assumere il valore zero.
Ad esempio dato il vettore V1: 1 10 15 18
Il programma deve generare il vettore V1: 10 15 18 0
4.	visualizza il vettore V1 ottenuto
5.	esegue uno spostamento (shift) a destra di una posizione del contenuto del vettore V1 ottenuto nel passo precedente. Ogni elemento del vettore deve assumere il valore dell'elemento immediatamente precedente all'interno del vettore  e l'elemento di indice 0 deve assumere il valore zero.
Ad esempio dato il vettore V1: 10 15 18 0
Il programma deve generare il vettore V1: 0 10 15 18
6.	visualizza il vettore V1 ottenuto
7.	calcola il massimo in V1
*/

#include <iostream>
using namespace std;


void shift_sinistra (int n, int v[]){
	for (int i=0 ; i<n-1; i++){
		v[i]=v[i+1];}
			v[n-1]=0;}
		
		
void shift_destra (int n, int v[]){
	for (int i=n-1; i>0; i--){
		v[i]=v[i-1];}
		v[0]=0;}
		

		
	

int main () {
	int n;
	int v[n];
	int massimo;
	
	
   //Prende valori
   cout<<"inserisci il vettore di n  elementi"<<endl;
   cin>>n;
   
 //Inserimento valori nel vettore
   for (int i=0; i<n; i++){
   	cout<<"Inserisci il prossimo numero: ";
   	cin>>v[i];}
   	
   	cout<<"Il vettore e': [ ";
   	//visualizzazione vettore
   	for (int i=0; i<n; i++){
   		cout<<v[i]<<" ";
	   }
	cout<<"]"<<endl;
	
	//calcolo massimo
		massimo=v[0];
    for (int i=1; i<n; i++){
       if (massimo<v[i]){
    		massimo=v[i];
		}
	} cout<<"il massimo e': "<<massimo<<endl;
	
	shift_sinistra(n, v);
	cout<<"il vettore con shift a sinistra e': ";
	for (int i=0; i<n; i++){
		cout<<v[i]<<" ";
	}
	cout<<"]"<<endl;
	
	shift_destra(n, v);
	cout<<"il vettore con shift a destra e':[ ";
	for (int i=0; i<n; i++){
		cout<<v[i]<<" ";
	}
	cout<<"]"<<endl;
	
	   
	   system ("pause");
	   return 0;
   	
}

2 Risposte

  • Re: Calcolare massimo di un vettore

    "Non parte" non vuol dire nulla. Hai un errore in compilazione? In esecuzione?

    Intanto queste

    int n;
    int v[n];

    non hanno senso. Il valore di n non è definito in questo momento.
  • Re: Calcolare massimo di un vettore

    Risolto, il problema era proprio nelle int. Comunque ciò che intendevo io era che quando andavo a compilare e eseguire il programma usciva una schermata nera con dei trattini poi scritto:" process exited after 1.8 seconds ecc. Premi un tasto per continuare." Grazie mille, gentilissimo.
Devi accedere o registrarti per scrivere nel forum
2 risposte