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.2So 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.8Wenn 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.5Warum? Der Divisor passt nullmal hinein, daher ist der gesamte Dividend der Rest.
Aufgabe
AnfängerSchreibe 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 vonamodulo2enthälte (int), das das Ergebnis vonamodulo3enthältf (double), das das Ergebnis vonbmodulo1.5enthältg (double), das das Ergebnis vonbmodulo3.9enthälth (int), das das Ergebnis voncmodulo10enthä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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorInkrement/DekrementPost-Inkrement/DekrementArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Eingabe/Ausgabe Grundlagen
cout-Anweisungcin-AnweisungString-EingabeWiederholung - Bis 120Wiederholung - Wahr oder Falsch3Variablen Teil 2
TypdeklarationNamenskonventionenWiederholung – Variablen initialisierenType Casting Teil 1Type Casting Teil 26Entscheidungsfindung
If-AnweisungIf - ElseSwitch-AnweisungBedingter OperatorWiederholung - If ElseVerschachtelte If - ElseÜbe selbstständig: Online-C++-Compiler