[C++] Massimo, Minimo e Posizione. Come risolvere questo problema?

di il
1 risposte

[C++] Massimo, Minimo e Posizione. Come risolvere questo problema?

Ciao a tutti, mi chiamo Riccardo, sono nuovo e approfitto per salutarvi tutti

Devo costruire un programma in C++ con la seguente consegna:

Scrivere un programma che data una sequenza di numeri chiusa dallo 0, trovi e restituisca mediante una funzione/procedura il massimo, il minimo e la loro posizione nella sequenza.

Sono riuscito a crearlo in maniera lineare, ovvero tutto nel main() senza usare procedure (anche se ha qualche problema se vengono inseriti tutti numeri negativi), ora vorrei implementare appunto la procedura/funzione, a mia scelta.

Vi posto entrambe le versioni, sapreste darmi qualche dritta su come procedere per far funzionare il programma?

VERSIONE LINEARE:
#include <iostream>
using namespace std;

main(){
int N, max, min, counter_max, counter_min, counter;

counter=1;

	do{	
      	cout << "Inserisci un numero:\n";
		cin >> N;
		
		if (N>max){
			max = N;
			counter_max = counter;
		}else if(N<min){
			min = N;
			counter_min= counter;
		}
		
		counter = counter +1;
	} while (N!=0);
	
	cout << "Sequenza terminata\n";
	cout << "Il massimo inserito:" << max << " si trova in posizione " << counter_max << "\n";
	cout << "Il minimo inserito:" << min << " si trova in posizione " << counter_min << "\n";
	
system("PAUSE");
}
VERSIONE PROCEDURA:
#include <iostream>
using namespace std;

void Procedura(int Numero, int Max, int Counter_max, int Min,int Counter_min, int Counter){

		if (Numero>Max){
			Max = Numero;
			Counter_max = Counter;
			cout << "Per ora massimo: " << Max << "\n";
		}else if(Numero<Min){
			Min = Numero;
			Counter_min= Counter;
			cout << "Per ora minimo: " << Min << "\n";
		}

}


main(){
int N, max, min, counter_max, counter_min, counter;
counter=1;		
	do{	
	    cout << "Inserisci un numero:\n";
		cin >> N;
			
		Procedura(N,max,counter_max,min,counter_min,counter);	
			
		counter = counter +1;
	} while (N!=0);
		
	cout << "Sequenza terminata\n";
	cout << "Il massimo inserito:" << max << " si trova in posizione " << counter_max << "\n";
	cout << "Il minimo inserito:" << min << " si trova in posizione " << counter_min << "\n";

system("PAUSE");
}
Grazie Mille a tutti,
A presto

1 Risposte

  • Re: [C++] Massimo, Minimo e Posizione. Come risolvere questo problema?

    Sei sicuro che la traccia con "sequenza di numeri" non intenda un array?

    In ogni caso per quanto riguarda la prima versione, quando entri per la prima volta nel ciclo do/while quanto valgono le variabili min e max?

    Per quanto riguarda la seconda versione conosci la differenza tra passaggio per valore e passaggio per riferimento?
Devi accedere o registrarti per scrivere nel forum
1 risposte