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

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>

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.