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óra jest dzielona.
- divisor: Liczba, przez którą dzielona jest dzielna.
- result: Reszta z dzielenia.
Na przykład:
result = 10 % 3;W tym przykładzie 10 jest dzielone przez 3. 3 mieści się w 10 trzy razy, a reszta wynosi 1. Zatem result będzie równe 1.
Zwykle modulo służy do sprawdzania, czy liczba jest parzysta, czy nieparzysta:
- Jeśli liczba jest parzysta, dzielenie jej przez 2 da resztę 0.
- Jeśli liczba jest nieparzysta, dzielenie jej przez 2 da resztę 1.
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 ona podobnie do operatora modulo, ale zachowuje precyzję dziesiętną. 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 zainicjuje trzy zmienne: a (int), b (double) i c (int) wartościami 9, 2.6 i 11 (odpowiednio).
Następnie zainicjuj następujące zmienne:
d (int), która będzie przechowywać wynik operacji modulo naai2e (int), która będzie przechowywać wynik operacji modulo naai3f (double), która będzie przechowywać wynik operacji modulo nabi1.5g (double), która będzie przechowywać wynik operacji modulo nabi3.9h (int), która będzie przechowywać wynik operacji modulo naci10
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