Menu
Coddy logo textTech

Riepilogo: attraversamento di un array con i puntatori

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

challenge icon

Sfida

Facile

Scrivi un programma C che implementi una funzione per calcolare la somma di tutti gli elementi di un array di interi usando l’aritmetica dei puntatori e l’equivalenza tra array e puntatori. Il programma dovrebbe:

  1. Creare una funzione denominata calculateSum che accetta due parametri:
    • Un puntatore a un intero (int *arr) che rappresenta l’array
    • Un intero (size) che rappresenta il numero di elementi nell’array
  2. All’interno della funzione calculateSum:
    • Inizializzare una variabile sum a 0
    • Creare una variabile puntatore ptr e impostarla in modo che punti all’inizio dell’array
    • Usare un ciclo per scorrere l’array utilizzando l’aritmetica dei puntatori
    • A ogni iterazione, aggiungere a sum il valore puntato da ptr
    • Incrementare il puntatore per passare all’elemento successivo
    • Restituire la somma calcolata
  3. Nella funzione main:
    • Leggere un intero n che rappresenta la dimensione dell’array
    • Dichiarare un array di interi di dimensione n
    • Leggere n interi dall’input per riempire l’array
    • Chiamare la funzione calculateSum con l’array e la sua dimensione
    • Stampare il risultato nel formato: "Sum: [value]"

La funzione deve usare l’aritmetica dei puntatori per scorrere l’array: non usare la notazione di indicizzazione degli array come arr[i]. Usa invece il dereferenziamento dei puntatori e le operazioni di incremento per accedere agli elementi dell’array.

Per esempio, se l’input è:

5
10 20 30 40 50

L’output dovrebbe essere:

Sum: 150

Questa sfida verifica la tua comprensione di come le funzioni possano accettare array come parametri puntatore, di come usare l’aritmetica dei puntatori per scorrere gli array in modo efficiente e di come i nomi degli array vengano convertiti automaticamente in puntatori quando vengono passati alle funzioni.

Provalo tu

#include <stdio.h>

// TODO: Scrivi qui la tua funzione calculateSum

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // Leggi gli elementi dell'array
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: Chiama la funzione calculateSum e memorizza il risultato
    
    // TODO: Stampa il risultato nel formato "Sum: [value]"
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online