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, 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++
3- Operatori di assegnazione 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
Sommare dei numeri di una matrice in C
Come ricercare gli elementi in una matrice in C
Inserire dati in una matrice in C