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.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 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 vonaModulo2enthalten wirde (int), die das Ergebnis vonaModulo3enthalten wirdf (double), die das Ergebnis vonbModulo1.5enthalten wirdg (double), die das Ergebnis vonbModulo3.9enthalten wirdh (int), die das Ergebnis voncModulo10enthalten 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;
}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