
Sviluppiamo un altro esempio per trovare il maggiore e quante volte ricorre in C++.
Trovare il maggiore e quante volte ricorre in C++, implementazione
Realizziamo l’algoritmo chiedendo all’utente quanti numeri vuole inserire.
Innanzitutto definiamo le variabili che ci servono per lo sviluppo del seguente algoritmo:
int N – Indica la quantità dei numeri da inserire. Su questa variabile faremo il controllo dell’input affinchè N sia maggiore di zero.
int n – Indica il numero che di volta in volta viene inserito.
int max – è la variabile dove memorizziamo il valore maggiore.
conta_max – è la variabile dove memorizziamo quante volte ricorre il massimo, cioè il valore maggiore.
int i – Infine i è la variabile contatore per il ciclo while, che inizializziamo a zero.
Procediamo adesso con lo sviluppo dell’algoritmo in C++.
Innanzitutto chiediamo quanti numeri vogliamo inserire, cioè il nostro N, e facciamo un controllo dell’input.
Quindi chiediamo di inserire un numero e lo assegniamo alla variabile max.
Perciò inizializziamo la variabile conta_max a 1.
Dopo utilizziamo il ciclo while, impostando la condizione i<N e all’interno implementiamo le istruzioni che servono per la ricerca del valore massimo.
Poi si inserisce un altro numero e lo si confronta col max. Se questo valore è maggiore allora si trova un nuovo max e dunque alla variabile conta_max assegno nuovamente il valore 1. Altrimenti se si trova un valore uguale al max, la variabile conta_max viene incrementata di 1.
Ecco dunque il codice completo:
#include <iostream>
using namespace std;
int main() {
int i, N, max, n, conta_max;
do{
cout<<"Quanti numeri vuoi inserire? : \t";
cin>>N;
}while (N<=0);
i=0;
cout<<"Inserisci il primo numero: \t";
cin>>max;
conta_max=1;
while(i<N-1) {
cout<<"Inserisci il numero: \t";
cin>>n;
if(n>max){
max=n;
//se trova un nuovo max riporta la variabile a 1
conta_max=1;
}
else if (n==max)
conta_max++;
i++;
}
cout<<"Il massimo e' "<<max<<" ed e' stato inserito "<<conta_max<<" volte."<<endl;
return 0;
}
Possiamo anche evitare la variabile contatore i se usiamo la condizione while(N>1) e decrementiamo di volta in volta N di 1.
Ecco quindi una seconda soluzione:
#include <iostream>
using namespace std;
int main() {
int N, max, n, conta_max=1;
do{
cout<<"Quanti numeri vuoi inserire? : \t";
cin>>N;
}while (N<=0);
cout<<"Inserisci il primo numero: \t";
cin>>max;
while(N>1) {
cout<<"Inserisci il numero: \t";
cin>>n;
if(n>max){
max=n;
conta_max=1;
//se trova un nuovo max riporta la variabile a 1
}
else if (n==max)
conta_max++;
N--;
}
cout<<"Il massimo e' "<<max<<" ed e' stato inserito "<<conta_max<<" volte."<<endl;
return 0;
}
Questo era solo un esempio di possibile implementazione dell’algoritmo per trovare il maggiore e quante volte ricorre in C++.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++