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:

Banner Pubblicitario

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.

Banner pubblicitario

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, max;
    
    cout << "Inserisci il primo numero: ";
    cin >> a;
    cout << "Inserisci il secondo numero: ";
    cin >> b;
    cout << "Inserisci il terzo numero: ";
    cin >> c;
    
    max = a;    
    
    if (b > max) {
        max = b;
    }
    if (c > max) {
        max = c;
    }

    cout << "Il numero maggiore è: " << max;
    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++.

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