Menu
Coddy logo textTech

Recapitulação: Percorrendo Arrays com Ponteiros

Parte da seção Logic & Flow do Journey de C da Coddy — lição 11 de 63.

challenge icon

Desafio

Fácil

Escreva um programa em C que implemente uma função para calcular a soma de todos os elementos em um array de inteiros usando aritmética de ponteiros e a equivalência entre array e ponteiro. Seu programa deve:

  1. Criar uma função chamada calculateSum que recebe dois parâmetros:
    • Um ponteiro para um inteiro (int *arr) representando o array
    • Um inteiro (size) representando o número de elementos no array
  2. Dentro da função calculateSum:
    • Inicializar uma variável sum como 0
    • Criar uma variável ponteiro ptr e configurá-la para apontar para o início do array
    • Usar um loop para percorrer o array usando aritmética de ponteiros
    • Em cada iteração, adicionar o valor apontado por ptr à variável sum
    • Incrementar o ponteiro para mover para o próximo elemento
    • Retornar a soma calculada
  3. Na função main:
    • Ler um inteiro n representando o tamanho do array
    • Declarar um array de inteiros de tamanho n
    • Ler n inteiros da entrada para preencher o array
    • Chamar a função calculateSum com o array e seu tamanho
    • Imprimir o resultado no formato: "Sum: [value]"

A função deve usar aritmética de ponteiros para percorrer o array - não use a notação de indexação de array como arr[i]. Em vez disso, use operações de desreferenciação de ponteiro e incremento para acessar os elementos do array.

Por exemplo, se a entrada for:

5
10 20 30 40 50

Sua saída deve ser:

Sum: 150

Este desafio testa sua compreensão de como as funções podem aceitar arrays como parâmetros de ponteiro, como usar aritmética de ponteiros para percorrer arrays de forma eficiente e como os nomes de arrays são convertidos automaticamente em ponteiros quando passados para funções.

Experimente você mesmo

#include <stdio.h>

// TODO: Escreva sua função calculateSum aqui

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // Lê os elementos do array
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: Chame a função calculateSum e armazene o resultado
    
    // TODO: Imprima o resultado no formato "Sum: [value]"
    
    return 0;
}

Todas as lições de Logic & Flow