Menu
Coddy logo textTech

Modulo-Operator

Teil des Abschnitts Grundlagen der C++-Journey von Coddy — Lektion 17 von 74.

Der Modulo-Operator % gibt den Rest einer Division zurück. In C++ wird er mit einer einfachen Syntax verwendet:

result = dividend % divisor;
  • dividend: Die Zahl, die geteilt wird.
  • divisor: Die Zahl, durch die der Dividend geteilt wird.
  • result: Der Rest der Division.

Zum Beispiel:

result = 10 % 3;

Hier wird 10 durch 3 geteilt. Die 3 passt dreimal in die 10, mit einem Rest von 1. Daher wird result 1 sein.

Normalerweise wird Modulo verwendet, um zu prüfen, ob eine Zahl gerade oder ungerade ist:

  • Wenn eine Zahl gerade ist, lässt die Division durch 2 einen Rest von 0.
  • Wenn eine Zahl ungerade ist, lässt die Division durch 2 einen Rest von 1.

Beim Arbeiten mit Gleitkommazahlen (Doubles) in C++ können Sie den Modulo-Operator % nicht direkt verwenden. Stattdessen müssen Sie die Funktion fmod() aus der Bibliothek <cmath> verwenden. Sie funktioniert ähnlich wie der Modulo-Operator, behält aber die Dezimalpräzision bei. Zum Beispiel:

#include <cmath>

double result = fmod(5.2, 2.0);
// result ist 1.2

So funktioniert es: 2.0 passt zweimal in 5.2 (4.0), und der Rest ist 1.2 (5.2 - 4.0 = 1.2).

Ein weiteres Beispiel:

double result = fmod(7.8, 3.5);
// result ist 0.8

Wenn der Divisor größer als der Dividend ist, entspricht das Ergebnis dem Dividenden. Dies gilt sowohl für % als auch für fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

Warum? Der Divisor passt nullmal hinein, daher ist der gesamte Dividend der Rest.

challenge icon

Aufgabe

Anfänger

Schreiben Sie einen Code, der drei Variablen, a (int), b (double) und c (int) mit den Werten 9, 2.6 und 11 (in dieser Reihenfolge) initialisiert.

Initialisieren Sie danach die folgenden Variablen:

  • d (int), die das Ergebnis von a Modulo 2 enthalten wird 
  • e (int), die das Ergebnis von a Modulo 3 enthalten wird
  • f (double), die das Ergebnis von b Modulo 1.5 enthalten wird
  • g (double), die das Ergebnis von b Modulo 3.9 enthalten wird
  • h (int), die das Ergebnis von c Modulo 10 enthalten wird

Schauen Sie sich das Ergebnis an und sehen Sie, wie sich verschiedene Dividenden und Divisoren auf das Ergebnis auswirken.

Spickzettel

Der Modulo-Operator % gibt den Rest einer Division zurück:

result = dividend % divisor;

Beispiel:

result = 10 % 3;  // Ergebnis ist 1

Häufiger Anwendungsfall - Überprüfen, ob eine Zahl gerade oder ungerade ist:

  • Gerade Zahlen: number % 2 == 0
  • Ungerade Zahlen: number % 2 == 1

Verwenden Sie für Gleitkommazahlen fmod() aus <cmath>:

#include <cmath>

double result = fmod(5.2, 2.0);  // Ergebnis ist 1.2
double result2 = fmod(7.8, 3.5); // Ergebnis2 ist 0.8

Wenn der Divisor größer als der Dividend ist, entspricht das Ergebnis dem Dividenden. Dies gilt sowohl für % und fmod().

Probier es selbst

#include <iostream>
#include <cmath>

int main() {
    // Geben Sie Ihren Code unten ein
    
    
    // Ändern Sie die folgende Zeile nicht
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen