
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 e': "<<a;
else
cout<<"Il numero maggiore e': "<<c;
else
if (b>c)
cout<<"Il numero maggiore e': "<<b;
else
cout<<"Il numero maggiore e': "<<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 e': "<<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 e': "<<a;
else if(b>c)
cout<<"Il numero maggiore e': "<<b;
else
cout<<"Il numero maggiore e': "<<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