logo

Modulo Operator (%) v C/C++ s příklady

V C nebo C++ je modulo operátor (také známý jako modulový operátor) , označený %, je an aritmetický operátor . Operátor divize modulo vyrábí zbytek celočíselného dělení, které se také nazývá modul operace.

Syntaxe operátoru modulu

Pokud jsou x a y celá čísla, pak výraz:



x   %   y;>

vyslovováno jako x mod y. Například 10 % 2 bude vyslovováno jako Ten mod Two.

Návratová hodnota operátora Modulo

  • Pokud y úplně dělí x, je výsledkem výrazu 0.
  • Pokud x není úplně dělitelné y, pak výsledkem bude zbytek v rozsahu [0, y-1]
  • (X % a) < (x / 2) ………if (x>= y)
  • (X % y) = x ……… pokud (x
  • Pokud je y 0, pak dělení nulou je chyba při kompilaci .

Příklad operátora Modulo

Níže je uveden program C/C++, který demonstruje fungování operátoru modulo:

C++








// C++ Program to demonstrate the working of modulo operator> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >cout << result << endl;> >result = y % x;> >cout << result << endl;> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Mayank Tyagi>

>

>

C




// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >printf>(>'%d'>, result);> >result = y % x;> >printf>(>' %d'>, result);> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >printf>(>' %d'>, result);> >return> 0;> }>

>

>

Omezení pro operátora Modulo

Operátor modulo má několik omezení nebo omezení. The % modulu operátor nelze aplikovat na čísla s plovoucí desetinnou čárkou tj. plovoucí nebo dvojitý. Pokud se pokusíte použít operátor modulo s konstantami nebo proměnnými s plovoucí desetinnou čárkou, kompilátor vytvoří chybu.

Příklad 1: Program v C/C++ pro demonstraci omezení operátoru modulo.

C++




// C++ Program to demonstrate the restrictions of modulo> // operator> #include> using> namespace> std;> // Driver code> int> main()> {> >float> x, y;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava>

>

>

C




// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >float> x, y;> >float> result;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >printf>(>'%f'>, result);> >return> 0;> }>

>

>

Výstup

Compilation Error in C code :- prog.c: In function 'main': prog.c:19:16: error:  invalid operands to binary % (have 'float' and 'float')  result = x % y;  ^>

Modulo operátor pro záporné operandy

Znaménko výsledku pro operátor modulo je u záporných operandů závislé na stroji, protože akce probíhá v důsledku podtečení nebo přetečení.

Příklad 2: Program v C/C++ pro demonstraci operátoru modulo pro záporné operandy.

C++




// C++ Program to demonstrate the working of the modulo> // operator for negative operands> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >cout << result << endl;> >x = 4;> >y = -2;> >result = x % y;> >cout << result << endl;> >x = -3;> >y = -4;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava>

>

>

C




// C Program to illustrate the working of the modulo> // operator with negative operands> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >printf>(>'%d'>, result);> >x = 4;> >y = -2;> >result = x % y;> >printf>(>' %d'>, result);> >x = -3;> >y = -4;> >result = x % y;> >printf>(>' %d'>, result);> >return> 0;> }>

>

>

Výstup

-3 0 -3>

Poznámka: Návratová hodnota je v tomto případě závislá na kompilátoru.

Často kladené otázky o modulu Modulo Operator

Q1. Definujte mod.

Odpovědět:

V programovacích jazycích C/C++ mod odkazuje na matematickou operaci, ve které je jedno číslo děleno druhým a zbytek je vrácen.

Lze jej provést pomocí operátorský modul (%) .

java tutoriály

Q2. Co je mod aritmetika?

Odpovědět:

Mod aritmetika se týká procesu, ve kterém číslo stále obtéká určitý bod takovým způsobem, že je vždy menší než tento určitý bod. Například,

Zvažte číslo n = 10 a bod p = 20.
Když zvýšíme n 10krát, bude to n = 20, ale v modulární aritmetice by to mělo být menší než zadaný bod.

Jedním ze způsobů, jak toho dosáhnout, je použít operátor modulo jako:

n++; n = n % p;>

Další informace o modulární aritimatice naleznete v článku – Modulární aritmatické

Q3. Jaký je rozdíl mezi operátorem modulo a rozdělením?

Odpovědět:

Hlavní rozdíl mezi operátorem modulo a divizí je v tom, že:

  • Operátorský modul (%) vrátí zbytek po dělení jednoho čísla druhým.
  • Operátor rozdělení (/) vrátí podíl po dělení jednoho čísla druhým.