logo

Modulo-operaattori (%) C/C++:ssa esimerkkien kanssa

C:ssä tai C++:ssa modulo-operaattori (tunnetaan myös nimellä moduulioperaattori) , merkitty prosentilla, on an aritmeettinen operaattori . Modulo-jaon operaattori tuottaa loput kokonaislukujaosta, jota kutsutaan myös operaation moduuliksi.

Modulus Operatorin syntaksi

Jos x ja y ovat kokonaislukuja, lauseke:



x   %   y;>

lausutaan nimellä x mod y. Esimerkiksi 10 % 2 lausutaan nimellä Ten mod Two.

Modulo Operatorin palautusarvo

  • Jos y jakaa x:n kokonaan, lausekkeen tulos on 0.
  • Jos x ei ole täysin jaollinen y:llä, tulos on jäännös alueella [0, y-1]
  • (x % ja) < (x / 2) ………jos (x>= y)
  • (x % y) = x ……… jos (x
  • Jos y on 0, niin nollalla jakaminen on käännösaikavirhe .

Esimerkki Modulo-operaattorista

Alla on C/C++-ohjelma, joka osoittaa modulo-operaattorin toiminnan:

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;> }>

java tapauslausunto

>

>

Modulo-operaattorin rajoitukset

Modulo-operaattorilla on vähän rajoituksia tai rajoituksia. The % moduulioperaattori ei voida soveltaa liukulukuja eli kelluva tai tupla. Jos yrität käyttää modulo-operaattoria liukulukuvakioiden tai muuttujien kanssa, kääntäjä tuottaa virheen.

Esimerkki 1: C/C++-ohjelma, joka osoittaa modulo-operaattorin rajoitukset.

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;> }>

>

>

Lähtö

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-operaattori negatiivisille operandiille

Moduulioperaattorin tuloksen etumerkki on koneriippuvainen negatiivisille operandeille, koska toiminto tapahtuu ali- tai ylivuodon seurauksena.

Esimerkki 2: C/C++-ohjelma negatiivisten operandien modulo-operaattorin esittelyyn.

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>

>

json-muotoinen esimerkki
>

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;> }>

>

>

Lähtö

-3 0 -3>

Huomautus: Palautusarvo on tässä tapauksessa kääntäjästä riippuvainen.

Usein kysytyt kysymykset Modulo Operatorista

Q1. Määritä mod.

Vastaus:

C/C++-ohjelmointikielissä mod viittaa matemaattiseen operaatioon, jossa yksi luku jaetaan toisella ja loppuosa palautetaan.

Se voidaan suorittaa käyttämällä operaattorimoduuli (%) .

Q2. Mikä on modaritmetiikka?

Vastaus:

Mod-aritmetiikka viittaa prosessiin, jossa luku kiertyy tietyn pisteen ympärille siten, että se on aina pienempi kuin tietty piste. Esimerkiksi,

Harkitse numeroa n = 10 ja piste p = 20.
Kun lisäämme n:ää 10 kertaa, se on n = 20, mutta modulaarisessa aritmetiikassa sen pitäisi olla pienempi kuin määritetty piste.

Yksi tapa tehdä se on käyttää modulo-operaattoria seuraavasti:

n++; n = n % p;>

Jos haluat lisätietoja modulaarisesta aritimaattisuudesta, katso artikkeli - Modulaarinen aritmaattinen

Q3. Mitä eroa modulo- ja divide-operaattorilla on?

Vastaus:

Suurin ero modulo- ja jakooperaattorin välillä on, että:

  • Operaattorimoduuli (%) palauttaa jäännöksen, kun yksi luku on jaettu toisella.
  • Jaa operaattori (/) palauttaa osamäärän jakattuaan yhden luvun toisella.