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.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ängerSchreiben 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 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
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 1Hä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.8Wenn 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;
}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