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.

Banner Pubblicitario

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.

Banner pubblicitario

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++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++