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