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.
  • Ergebnis: Der Rest der Division.

Zum Beispiel:

result = 10 % 3;

Hier wird 10 durch 3 geteilt. 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, ergibt die Division durch 2 einen Rest von 0.
  • Wenn eine Zahl ungerade ist, ergibt 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);
// Ergebnis 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

Schreibe einen Code, der drei Variablen, a (int), b (double) und c (int), mit den Werten 9, 2.6 und 11 (jeweils) initialisiert.

Initialisiere 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

Sieh dir das Ergebnis an und beobachte, wie sich verschiedene Dividenden und Divisoren auf das Ergebnis auswirken.

Probier es selbst

#include <iostream>
#include <cmath>

int main() {
    // Geben Sie Ihren Code unten ein
    
    
    // Die folgende Zeile nicht ändern
    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