Operator modulo
Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 17 z 74.
Operator modulo % zwraca resztę z dzielenia. W C++ używa się go w prostej składni:
result = dividend % divisor;- dividend: Liczba, którą dzielimy.
- divisor: Liczba, przez którą dzielimy dzielną.
- result: Reszta z dzielenia.
Na przykład:
result = 10 % 3;Tutaj 10 jest dzielone przez 3. 3 mieści się w 10 trzy razy, z resztą 1. Zatem wartość zmiennej result wyniesie 1.
Zwykle operator modulo służy do sprawdzania, czy liczba jest parzysta, czy nieparzysta:
- Jeśli liczba jest parzysta, dzielenie jej przez 2 pozostawi resztę równą 0.
- Jeśli liczba jest nieparzysta, dzielenie jej przez 2 pozostawi resztę równą 1 lub -1, gdy liczba jest ujemna.
Podczas pracy z liczbami zmiennoprzecinkowymi (typu double) w C++ nie możesz używać bezpośrednio operatora modulo %. Zamiast tego musisz użyć funkcji fmod() z biblioteki <cmath>. Działa podobnie do operatora modulo, ale zachowuje precyzję miejsc dziesiętnych. Na przykład:
#include <cmath>
double result = fmod(5.2, 2.0);
// result wynosi 1.2Oto jak to działa: 2.0 mieści się w 5.2 dwa razy (4.0), a reszta wynosi 1.2 (5.2 - 4.0 = 1.2).
Kolejny przykład:
double result = fmod(7.8, 3.5);
// result wynosi 0.8Gdy dzielnik jest większy od dzielnej, wynik jest równy dzielnej. Dotyczy to zarówno %, jak i fmod().
5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5Dlaczego? Dzielnik mieści się zero razy, więc cała dzielna jest resztą.
Wyzwanie
PoczątkującyNapisz kod, który inicjalizuje trzy zmienne: a (int), b (double) i c (int) wartościami 9, 2.6 i 11 (odpowiednio).
Następnie zainicjalizuj następujące zmienne:
d (int), która będzie przechowywać wynik operacji modulo dlaai2e (int), która będzie przechowywać wynik operacji modulo dlaai3f (double), która będzie przechowywać wynik operacji modulo dlabi1.5g (double), która będzie przechowywać wynik operacji modulo dlabi3.9h (int), która będzie przechowywać wynik operacji modulo dlaci10
Sprawdź wynik i zobacz, jak różne dzielne i dzielniki wpływają na rezultat.
Spróbuj swoich sił
#include <iostream>
#include <cmath>
int main() {
// Wpisz swój kod poniżej
// Nie zmieniaj poniższej linii
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;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 1
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaPostinkrementacja/postdekrementacjaSkrócone operatory arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawy wejścia/wyjścia
Instrukcja coutInstrukcja cinWczytywanie ciągu znakówPowtórka — do 120Powtórka — prawda czy fałsz3Zmienne, część 2
Deklarowanie typówKonwencje nazewnictwaPowtórka — inicjalizacja zmiennychKonwersja typów, część 1Konwersja typów, część 26Podejmowanie decyzji
Instrukcja ifIf - elseInstrukcja switchOperator warunkowyPowtórzenie: if - elseZagnieżdżone if - elsePoćwicz samodzielnie: Kompilator C++ online