C/C++-Übungen für Einsteiger

Den größten gemeinsamen Teiler in C und C++ finden

In dieser Lektion findest du den größten gemeinsamen Teiler (ggT) zweier ganzer Zahlen mit dem euklidischen Algorithmus.

Einführung

Der größte gemeinsame Teiler (ggT) zweier Zahlen ist die größte Zahl, durch die beide teilbar sind. Der euklidische Algorithmus findet den ggT, indem er das Paar (a, b) immer wieder durch (b, Rest von a geteilt durch b) ersetzt, bis der Rest 0 ist.

Wichtige Punkte

  • Schalte die Compiler-Warnungen (compiler warnings) ein und behebe alle.
  • Verstehe den Datentyp und die Lebensdauer (lifetime) jedes Werts genau.
  • Prüfe immer die Eingabedaten und die Grenzen von Array-Indizes.

Codebeispiele in C und C++

C
Code ausführen →
main.c
#include <stdio.h>
int main(void) {
    int left = 48, right = 18;
    // Reduce the pair until no remainder remains.
    while (right) { int remainder = left % right; left = right; right = remainder; }
    printf("gcd=%d\n", left);
}
Ergebnis der Ausführung
gcd=6
C++
Code ausführen →
main.cpp
#include <iostream>
#include <numeric>
int main() {
    // std::gcd implements Euclid's algorithm.
    std::cout << "gcd=" << std::gcd(48, 18) << '\n';
}
Ergebnis der Ausführung
gcd=6

C und C++ im Vergleich

In jedem Durchlauf berechnet das Programm remainder = left % right und setzt dann left = right und right = remainder. Ist right gleich 0, ist der in left verbliebene Wert der ggT. Für 48 und 18 lautet das Ergebnis gcd=6.

C

C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.

C++

C++ erlaubt weiterhin Arbeit auf niedriger Ebene, ergänzt aber Bibliothekstypen und sicherere Abstraktionen.

Übungen zur Vertiefung

Führe beide Versionen aus und ändere dann den Code, um zu beobachten, welche Sicherheit jede Sprache bietet.

  • Teste ungültige Eingaben und Grenzwerte.
  • Kompiliere mit den Flags -Wall -Wextra -Wpedantic, um zusätzliche Warnungen einzuschalten.
  • Lagere gemeinsame Deklarationen in eine Header-Datei und die Implementierung in eine eigene Datei aus.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges