Menu
Coddy logo textTech

Wiederholung: Array-Durchlauf mit Pointern

Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 11 von 63.

challenge icon

Aufgabe

Einfach

Schreiben Sie ein C-Programm, das eine Funktion implementiert, um die Summe aller Elemente in einem Integer-Array unter Verwendung von Zeigerarithmetik und Array-Zeiger-Äquivalenz zu berechnen. Ihr Programm sollte:

  1. Eine Funktion namens calculateSum erstellen, die zwei Parameter entgegennimmt:
    • Einen Zeiger auf einen Integer (int *arr), der das Array repräsentiert
    • Einen Integer (size), der die Anzahl der Elemente im Array repräsentiert
  2. Innerhalb der Funktion calculateSum:
    • Eine Variable sum mit 0 initialisieren
    • Eine Zeigervariable ptr erstellen und sie so setzen, dass sie auf den Anfang des Arrays zeigt
    • Eine Schleife verwenden, um das Array mittels Zeigerarithmetik zu durchlaufen
    • In jeder Iteration den Wert, auf den ptr zeigt, zu sum addieren
    • Den Zeiger inkrementieren, um zum nächsten Element zu gelangen
    • Die berechnete Summe zurückgeben
  3. In der main-Funktion:
    • Einen Integer n einlesen, der die Größe des Arrays repräsentiert
    • Ein Integer-Array der Größe n deklarieren
    • n Integer von der Eingabe einlesen, um das Array zu füllen
    • Die Funktion calculateSum mit dem Array und seiner Größe aufrufen
    • Das Ergebnis im Format "Sum: [value]" ausgeben

Die Funktion muss Zeigerarithmetik für den Array-Durchlauf verwenden - verwenden Sie keine Array-Indizierung wie arr[i]. Verwenden Sie stattdessen Zeiger-Dereferenzierung und Inkrement-Operationen, um auf die Array-Elemente zuzugreifen.

Zum Beispiel, wenn die Eingabe wie folgt lautet:

5
10 20 30 40 50

Ihre Ausgabe sollte sein:

Sum: 150

Diese Herausforderung testet Ihr Verständnis dafür, wie Funktionen Arrays als Zeigerparameter akzeptieren können, wie man Zeigerarithmetik verwendet, um Arrays effizient zu durchlaufen, und wie Array-Namen automatisch in Zeiger umgewandelt werden, wenn sie an Funktionen übergeben werden.

Probier es selbst

#include <stdio.h>

// TODO: Schreibe hier deine calculateSum-Funktion

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // Array-Elemente einlesen
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: Rufe die calculateSum-Funktion auf und speichere das Ergebnis
    
    // TODO: Gib das Ergebnis im Format "Sum: [value]" aus
    
    return 0;
}

Alle Lektionen in Logic & Flow