Menu
CoddyTech

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. 3 passt dreimal in 10, mit einem Rest von 1. Daher ist result gleich 1.

Der Modulo-Operator wird normalerweise verwendet, um zu prüfen, ob eine Zahl gerade oder ungerade ist:

  • Wenn eine Zahl gerade ist, bleibt beim Teilen durch 2 ein Rest von 0.
  • Wenn eine Zahl ungerade ist, bleibt beim Teilen durch 2 ein Rest von 1 oder -1, wenn die Zahl negativ ist.

Bei der Arbeit mit Gleitkommazahlen (double) in C++ kannst du den Modulooperator % nicht direkt verwenden. Stattdessen musst du die Funktion fmod() aus der Bibliothek <cmath> verwenden. Sie funktioniert ähnlich wie der Modulooperator, behält aber die Dezimalgenauigkeit 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

Schreibe 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), das das Ergebnis von a modulo 2  enthält
  • e (int), das das Ergebnis von a modulo 3 enthält
  • f (double), das das Ergebnis von b modulo 1.5 enthält
  • g (double), das das Ergebnis von b modulo 3.9 enthält
  • h (int), das das Ergebnis von c modulo 10 enthält

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

Probier es selbst

#include <iostream>
#include <cmath>

int main() {
    // Gib deinen Code unten ein
    
    
    // Ändere 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

Übe selbstständig: Online-C++-Compiler