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? : ";
cin >> N;
} while (N <= 0);
i = 0;
cout << "Inserisci il primo numero: ";
cin >> max;
conta_max = 1;
while (i < N - 1) {
cout << "Inserisci il numero: ";
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 è " << max << " ed è 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? : ";
cin >> N;
} while (N <= 0);
cout << "Inserisci il primo numero: ";
cin >> max;
while (N > 1) {
cout << "Inserisci il numero: ";
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 è " << max << " ed è 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++