Menu
Coddy logo textTech

Riepilogo: argomenti puntatore nelle funzioni

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 30 di 63.

challenge icon

Sfida

Facile

Scrivi un programma C che implementi una funzione per trovare sia il valore minimo sia quello massimo in un array usando argomenti puntatore. Il programma deve:

  1. Creare una funzione chiamata findMinMax che accetta quattro parametri:
    • Un array di interi
    • La dimensione dell'array
    • Un puntatore a un intero in cui memorizzare il valore minimo
    • Un puntatore a un intero in cui memorizzare il valore massimo
  2. All'interno della funzione findMinMax, scorrere l'array per trovare i valori minimo e massimo
  3. Usare l'operatore di dereferenziazione per memorizzare il valore minimo all'indirizzo puntato dal puntatore min
  4. Usare l'operatore di dereferenziazione per memorizzare il valore massimo all'indirizzo puntato dal puntatore max
  5. Nella funzione main, leggere un intero n che rappresenta il numero di elementi nell'array
  6. Leggere n valori interi e memorizzarli in un array
  7. Dichiarare due variabili intere minValue e maxValue per memorizzare i risultati
  8. Chiamare la funzione findMinMax, passando l'array, la sua dimensione e gli indirizzi di minValue e maxValue
  9. Stampare i risultati nel formato: Minimum: [value] e Maximum: [value]

Ad esempio, se l'input è:

5
12 7 23 4 18

L'output dovrebbe essere:

Minimum: 4
Maximum: 23

Questa sfida illustra la potente tecnica di usare più argomenti puntatore per restituire più valori con una singola chiamata di funzione, consentendo alla funzione di modificare le variabili nell'ambito della funzione chiamante.

Provalo tu

#include <stdio.h>

// TODO: Scrivi qui la tua funzione findMinMax

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO: Chiama qui la funzione findMinMax
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online