Come trovare il massimo fra tre numeri in C

Nella seguente pagina realizzeremo un programma in C in grado di accettare come input tre numeri qualsiasi inseriti da parte di un utente, e il programma sarà in grado di determinare il massimo fra i tre numeri inseriti.

Innanzitutto, per poter iniziare a chiedere in input i tre valori, abbiamo bisogno di tre variabili (in questo caso denominate num1, num2 e num3) a cui assegneremo i valori inseriti da tastiera da parte dell’utente. A questo punto non resta che trovare il massimo fra i tre numeri inseriti, ma per ottenere il risultato desiderato è possibile seguire diversi approcci. Ad esempio è possibile creare una serie di if annidati per controllare ogni possibile combinazione dei tre valori, ma, come è possibile immaginare, si tratta di una soluzione poco elegante e poco efficiente.

Un modo migliore per gestire questa situazione è di creare una nuova variabile "max" che al termine dell’esecuzione del programma conterrà il valore massimo fra i tre numeri. Per poter raggiungere tale risultato, iniziamo assegnando alla variabile max uno dei tre valori inseriti dall’utente (per esempio num1) e successivamente controlliamo attraverso due if se gli altri due valori risultano essere più grandi o meno del valore contenuto nella variabile max.
Se al primo if uno degli altri due numeri (num2) risulta essere più grande di max, memorizziamo tale valore nella variabile max, successivamente proseguiamo con il secondo if e controlliamo se il terzo valore (num3) risulta essere più grande del valore contenuto in max, se si lo sostituiamo in max.

Al termine di questi controlli, la variabile max conterrà il valore massimo fra i tre numeri inseriti da tastiera.


  
#include <stdio.h>

int main(){
    int num1, num2, num3, max;
    
    printf("Inserisci tre numeri: ");
    scanf("%d %d %d", &num1, &num2, &num3);
    
    max = num1;
    if(num2 > max)
        max = num2;
    if(num3 > max)
        max = num3;

    printf("Il massimo fra i tre numeri inseriti e': %d", max);

    return 0;
}

Indice pagine linguaggio C: