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

Die Fakultät mit einer Schleife berechnen in C und C++

In dieser Lektion berechnest du die Fakultät einer Zahl mit einer Schleife und speicherst das Ergebnis in einem ausreichend großen Datentyp.

Einführung

Die Fakultät von n, geschrieben n!, ist das Produkt aller positiven ganzen Zahlen von 1 bis n, zum Beispiel ist 6! = 720. Die Fakultät wächst sehr schnell, deshalb brauchst du einen großen Datentyp wie unsigned long long, um einen Überlauf zu vermeiden.

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 number = 6; unsigned long long result = 1;
    // Multiply each value into the running product.
    for (int value = 2; value <= number; ++value) result *= value;
    printf("%d! = %llu\n", number, result);
}
Ergebnis der Ausführung
6! = 720
C++
Code ausführen →
main.cpp
#include <iostream>
int main() {
    int number = 6; unsigned long long result = 1;
    // Multiply each value into the running product.
    for (int value = 2; value <= number; ++value) result *= value;
    std::cout << number << "! = " << result << '\n';
}
Ergebnis der Ausführung
6! = 720

C und C++ im Vergleich

Die Variable result beginnt bei 1, so bleiben 0! und 1! ohne Sonderbehandlung korrekt. Die Schleife multipliziert result nacheinander mit jeder Zahl von 2 bis number. Der Formatbezeichner %llu in printf dient dazu, Werte vom Typ unsigned long long auszugeben.

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