libri-javascript-python

In questa lezione affronteremo la realizzazione di un semplice algoritmo per il calcolo del massimo tra n numeri in C, utilizzando il ciclo for.

L’obiettivo è prendere in input n numeri, calcolare e visualizzare il valore massimo tra di essi.

Algoritmo per il calcolo del massimo tra n numeri in C

Per prima cosa, chiediamo all’utente di inserire quanti numeri desidera analizzare (n), verificando che il valore sia maggiore di zero.

Successivamente, utilizziamo un ciclo for per inserire i numeri e confrontarli per individuare il massimo. Se l’indice i è uguale a 0, assegniamo il valore del primo numero inserito alla variabile max. Successivamente, per ogni numero successivo, controlliamo se è maggiore del massimo attuale e, se sì, aggiorniamo il valore di max.

Infine, stampiamo il valore massimo così ottenuto.

Di seguito è riportato il codice completo dell’algoritmo:

#include <stdio.h>

int main() {
    int n, i, num, max;
    
    do {
        printf("Quanti numeri inserire?: ");
        scanf("%d", &n);
    } while (n <= 0);
    
    for (i = 0; i < n; i++) {
        printf("Numero %d: ", i + 1);
        scanf("%d", &num);
        if (i == 0)
            max = num;
        if (num > max)
            max = num;
    }
    
    printf("Il valore massimo è: %d\n", max);

    return 0;
}

Risoluzione passo-passo dell’algoritmo:

Immaginiamo di inserire 3 numeri: 9, 11 e -2.

Il valore massimo è 11.

Vediamo come l’algoritmo calcola il massimo:

  • Quindi, n=3Prima iterazione:
    • Con i=0, il test 0<3 è vero.
    • Chiediamo il primo numero e lo assegniamo a max (max = 9).
    Seconda iterazione:
    • Con i=1, il test 1<3 è vero.
    • Chiediamo il secondo numero e lo confrontiamo con max (max = 11).
    Terza iterazione:
    • Con i=2, il test 2<3 è vero.
    • Chiediamo il terzo numero e verifichiamo che non sia maggiore di max (max rimane 11).

Il ciclo termina e viene stampato il valore massimo, 11.

Seconda soluzione dell’algoritmo per il calcolo del massimo di n numeri in C

Nella seconda soluzione, chiediamo di inserire il primo numero prima del ciclo, assegnandolo a max. All’interno del ciclo for, confrontiamo ogni numero inserito con max e, se è maggiore, lo sostituiamo.

Il codice completo di questa soluzione è il seguente:

#include <stdio.h>

int main() {
    int n, i, num, max;
    
    do {
        printf("Quanti numeri inserire?: ");
        scanf("%d", &n);
    } while (n <= 0);
    
    printf("Inserisci il 1° numero: ");
    scanf("%d", &max);
    
    for (i = 1; i < n; i++) {
        printf("Inserisci il %d° numero: ", i + 1);
        scanf("%d", &num);
        if (num > max)
            max = num;
    }
    
    printf("Il valore massimo è: %d\n", max);

    return 0;
}

Queste due soluzioni forniscono un’ampia varietà di approcci per risolvere il problema del calcolo del massimo tra n numeri in C.

Conclusioni

In questa lezione abbiamo esaminato due approcci per risolvere il problema del calcolo del massimo tra n numeri in linguaggio C. Attraverso l’utilizzo di cicli for e costrutti di controllo, abbiamo illustrato due soluzioni pratiche per ottenere il valore massimo da un insieme di numeri inseriti dall’utente.

Il primo approccio prevede l’inserimento di tutti i numeri all’interno del ciclo for, confrontandoli uno per uno con il massimo attuale e aggiornando di conseguenza il valore massimo se necessario. Questo metodo offre una soluzione intuitiva e diretta al problema.

Il secondo approccio, invece, richiede l’inserimento del primo numero prima del ciclo, assegnandolo direttamente alla variabile max. All’interno del ciclo, si confrontano gli altri numeri con il massimo attuale e si aggiorna il valore di max se viene trovato un numero maggiore. Questa soluzione offre un’alternativa efficiente e leggermente più concisa al problema.

Entrambi gli approcci hanno dimostrato la versatilità dei cicli for e dei costrutti di controllo nel linguaggio C, consentendo una gestione efficace dei dati e l’implementazione di algoritmi efficienti.

Inoltre, abbiamo esaminato passo dopo passo come l’algoritmo funziona nel calcolare il massimo tra i numeri inseriti dall’utente, fornendo un’ulteriore chiarezza sul processo di esecuzione dell’algoritmo.

Queste soluzioni forniscono un solido punto di partenza per l’apprendimento dei concetti fondamentali di programmazione e per lo sviluppo di abilità pratiche nella risoluzione di problemi in linguaggio C.

Nelle prossime lezioni affronteremo ancora esercizi utilizzando le strutture iterative.

Alcuni link utili

Corso linguaggio C

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Merge sort in C

Insertion Sort in C