Massimo fra tre numeri in C++

Realizziamo un algoritmo per il calcolo del massimo fra tre numeri in C++, cioè dell’elemento più grande dei tre inseriti in input.

Proponiamo varie soluzioni al fine di confrontarle.

Prima soluzione massimo fra tre numeri in C++

La prima soluzione in poche parole traduce il diagramma di flusso che ho presentato in questo tutorial: massimo fra tre numeri.

In questa soluzione si tralascia, per il momento, il caso in cui i tre numeri possano essere uguali.

Chiediamo l’inserimento dei tre numeri e poi valutiamo:

a > b se è vero inseriamo un if annidato dove ci chiediamo se a è anche maggiore di c:

a > c se è vero dunque a è il maggiore;

altrimenti il maggiore chiaramente è c.

Se invece b > a è vero, inseriamo un if annidato dove controlliamo se anche b è maggiore di c.

b > c se è vero dunque b è il maggiore;

altrimenti il maggiore ovviamente sarà c.

Ecco dunque l’algoritmo in C++:

#include<iostream>
using namespace std;

int main() {
    int a, b, c;
    
    cout << "Inserisci il primo numero: ";
    cin >> a;
    cout << "Inserisci il secondo numero: ";
    cin >> b;
    cout << "Inserisci il terzo numero: ";
    cin >> c;
    
    if (a > b) {
        if (a > c) {
            cout << "Il numero maggiore è: " << a;
        } else {
            cout << "Il numero maggiore è: " << c;
        }
    } else {
        if (b > c) {
            cout << "Il numero maggiore è: " << b;
        } else {
            cout << "Il numero maggiore è: " << c;
        }
    }
    return 0;
}

Seconda soluzione – maggiore fra tre numeri in C++

La seconda soluzione implementa il secondo algoritmo presentato sempre in questa lezione: massimo fra tre numeri.

Questa soluzione è più snella della seconda e fa uso di una variabile max dove memorizzare il valore.

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    
    cout << "Inserisci il primo numero: ";
    cin >> a;
    cout << "Inserisci il secondo numero: ";
    cin >> b;
    cout << "Inserisci il terzo numero: ";
    cin >> c;
    
    int massimo = a;    
    
    if (b > massimo) massimo = b;
    if (c > massimo) massimo = c;

    cout << "Il numero maggiore è: " << massimo << endl;

    return 0;
}

Potrei direttamente scrivere:

cout<<“Inserisci il primo numero: “; cin>>max;

Evitando così l’uso di una variabile.

Terza soluzione

Nella terza soluzione si fa uso degli operatori logici ed in particolare dell’and.

Aggiungiamo anche il caso in cui i tre numeri siano uguali e quindi visualizziamo un messaggio opportuno in ouput.

#include<iostream>
using namespace std;

int main() {
    int a, b, c;
    
    cout << "Inserisci il primo numero: ";
    cin >> a;
    cout << "Inserisci il secondo numero: ";
    cin >> b;
    cout << "Inserisci il terzo numero: ";
    cin >> c;
    
    if (a == b && a == c) {
        cout << "I tre numeri sono uguali ";
    } else if (a > b && a > c) {
        cout << "Il numero maggiore è: " << a;
    } else if (b > c) {
        cout << "Il numero maggiore è: " << b;
    } else {
        cout << "Il numero maggiore è: " << c;
    }
    
    return 0;
}

Ecco alcune possibili risoluzioni dell’algoritmo per la ricerca del valore massimo fra tre inseriti in C++.

È ovviamente possibile usare la libreria <algorithm> per ottenere lo stesso risultato in una sola riga. Tuttavia, è importante prima capire la logica del confronto dei numeri, così da consolidare il ragionamento su come funziona il calcolo del massimo.

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    cout << "Il numero maggiore è: " << max({a, b, c}) << endl;
}
  • max({a, b, c}) richiede C++11 o superiore.
  • Molto compatto e leggibile.

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

Alcuni tutorial in C

Somma elementi diagonale principale di una matrice

Sommare elementi della cornice esterna di una matrice in C

Somma di due matrici in C

Sommare dei numeri di una matrice in C

Prodotto tra matrici in C

Come ricercare gli elementi in una matrice in C

Inserire dati in una matrice in C

Tavola pitagorica in C

Lascia un commento