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

Die Aufgabe FizzBuzz in C und C++

In dieser Lektion gibst du mit einer Schleife und Bedingungen für die Zahlen von 1 bis 15 Fizz, Buzz oder FizzBuzz aus.

Einführung

FizzBuzz ist eine klassische Programmieraufgabe: Gib für jede Zahl von 1 bis 15 Fizz aus, wenn sie durch 3 teilbar ist, Buzz, wenn sie durch 5 teilbar ist, FizzBuzz, wenn sie durch beide teilbar ist, und sonst die Zahl selbst. Die Aufgabe trainiert Schleifen, den Rest der Division und die Reihenfolge von Bedingungen.

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) {
    for (int n = 1; n <= 15; ++n) {
        // Check the most specific condition first.
        if (n % 15 == 0) puts("FizzBuzz");
        else if (n % 3 == 0) puts("Fizz");
        else if (n % 5 == 0) puts("Buzz");
        else printf("%d\n", n);
    }
}
Ergebnis der Ausführung
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
C++
Code ausführen →
main.cpp
#include <iostream>
int main() {
    for (int n = 1; n <= 15; ++n) {
        // Check the most specific condition first.
        if (n % 15 == 0) std::cout << "FizzBuzz\n";
        else if (n % 3 == 0) std::cout << "Fizz\n";
        else if (n % 5 == 0) std::cout << "Buzz\n";
        else std::cout << n << '\n';
    }
}
Ergebnis der Ausführung
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

C und C++ im Vergleich

Die Bedingung n % 15 == 0, also teilbar durch 3 und 5, muss zuerst geprüft werden. Prüft man zuerst die Teilbarkeit durch 3, wird 15 als Fizz ausgegeben und erreicht den FizzBuzz-Zweig nie. Die Bedingungen von der speziellsten zur allgemeinsten zu ordnen, ist der Kern dieser Aufgabe.

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