Menu
Coddy logo textTech

Podsumowanie: przechodzenie po tablicy za pomocą wskaźników

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 11 z 63.

challenge icon

Wyzwanie

Łatwy

Napisz program w C, który implementuje funkcję obliczającą sumę wszystkich elementów tablicy liczb całkowitych przy użyciu arytmetyki wskaźników i równoważności tablicy i wskaźnika. Twój program powinien:

  1. Utworzyć funkcję o nazwie calculateSum, która przyjmuje dwa parametry:
    • Wskaźnik na liczbę całkowitą (int *arr) reprezentujący tablicę
    • Liczbę całkowitą (size) reprezentującą liczbę elementów w tablicy
  2. Wewnątrz funkcji calculateSum:
    • Zainicjalizować zmienną sum wartością 0
    • Utworzyć zmienną wskaźnikową ptr i ustawić ją tak, aby wskazywała początek tablicy
    • Użyć pętli do przejścia przez tablicę z wykorzystaniem arytmetyki wskaźników
    • W każdej iteracji dodać do sum wartość, na którą wskazuje ptr
    • Zwiększyć wskaźnik, aby przejść do następnego elementu
    • Zwrócić obliczoną sumę
  3. W funkcji main:
    • Wczytać liczbę całkowitą n reprezentującą rozmiar tablicy
    • Zadeklarować tablicę liczb całkowitych o rozmiarze n
    • Wczytać z wejścia n liczb całkowitych, aby wypełnić tablicę
    • Wywołać funkcję calculateSum, przekazując jej tablicę i jej rozmiar
    • Wypisać wynik w formacie: "Sum: [value]"

Funkcja musi używać arytmetyki wskaźników do przechodzenia przez tablicę — nie używaj notacji indeksowania tablicy, takiej jak arr[i]. Zamiast tego używaj dereferencji wskaźnika i operacji zwiększania, aby uzyskiwać dostęp do elementów tablicy.

Na przykład, jeśli dane wejściowe to:

5
10 20 30 40 50

Oczekiwany wynik:

Sum: 150

To wyzwanie sprawdza Twoje rozumienie tego, jak funkcje mogą przyjmować tablice jako parametry wskaźnikowe, jak używać arytmetyki wskaźników do wydajnego przechodzenia przez tablice oraz jak nazwy tablic są automatycznie konwertowane na wskaźniki podczas przekazywania ich do funkcji.

Spróbuj swoich sił

#include <stdio.h>

// TODO: Napisz tutaj swoją funkcję calculateSum

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // Wczytaj elementy tablicy
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: Wywołaj funkcję calculateSum i zapisz wynik
    
    // TODO: Wypisz wynik w formacie "Sum: [value]"
    
    return 0;
}

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online