logo

Modulo operatorius (%) C/C++ su pavyzdžiais

C arba C++ kalboje modulio operatorius (taip pat žinomas kaip modulio operatorius) , žymimas %, yra an aritmetinis operatorius . Modulo skyriaus operatorius gamina priminimas sveikųjų skaičių dalybos, kuri dar vadinama operacijos moduliu.

Modulus Operator sintaksė

Jei x ir y yra sveikieji skaičiai, tada išraiška:



x   %   y;>

tariamas kaip x mod y. Pavyzdžiui, 10 % 2 bus tariamas kaip Ten mod Two.

„Modulo Operator“ grąžinimo vertė

  • Jei y visiškai padalija x, išraiškos rezultatas yra 0.
  • Jei x nevisiškai dalijasi iš y, rezultatas bus intervalo [0, y-1] liekana.
  • (x % ir) < (x / 2) ………jei (x>= y)
  • (x % y) = x ……… jei (x
  • Jei y yra 0, tada dalyba iš nulio yra kompiliavimo laiko klaida .

Modulo operatoriaus pavyzdys

Žemiau yra C/C++ programa, rodanti modulio operatoriaus veikimą:

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 operatoriaus apribojimai

Modulinis operatorius turi keletą apribojimų ar apribojimų. The % modulio operatorius negali būti taikomas slankiojo kablelio skaičiai y., plūduriuojantis arba dvigubas. Jei bandysite naudoti modulo operatorių su slankiojo kablelio konstantomis arba kintamaisiais, kompiliatorius sukels klaidą.

1 pavyzdys: C/C++ programa, skirta parodyti modulio operatoriaus apribojimus.

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


sąrašą kaip masyvą



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

>

>

Išvestis

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 operatorius neigiamiems operandams

Modulinio operatoriaus rezultato ženklas neigiamiems operandams priklauso nuo mašinos, nes veiksmas vyksta dėl perpildymo arba perpildymo.

2 pavyzdys: C/C++ programa, skirta parodyti neigiamų operandų modulio operatorių.

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

>

>

Išvestis

-3 0 -3>

Pastaba: Grąžinama vertė šiuo atveju priklauso nuo kompiliatoriaus.

DUK apie Modulo Operator

Q1. Apibrėžkite mod.

Atsakymas:

C/C++ programavimo kalbose mod reiškia matematinį veiksmą, kai vienas skaičius dalijamas iš kito, o likusi dalis grąžinama.

Jį galima atlikti naudojant modulio operatorius (%) .

Q2. Kas yra mod aritmetika?

Atsakymas:

Modifikacijos aritmetika reiškia procesą, kurio metu skaičius sukasi aplink tam tikrą tašką taip, kad jis visada yra mažesnis už tą tam tikrą tašką. Pavyzdžiui,

Apsvarstykite skaičių n = 10 ir taškas p = 20.
Padidinus n 10 kartų, jis bus n = 20, bet modulinėje aritmetikoje jis turėtų būti mažesnis už nurodytą tašką.

Vienas iš būdų tai padaryti yra naudoti modulo operatorių kaip:

n++; n = n % p;>

Norėdami sužinoti daugiau apie modulinę aritimate, skaitykite straipsnį - Modulinė aritmatika

Q3. Kuo skiriasi modulo ir padalijimo operatorius?

Atsakymas:

Pagrindinis skirtumas tarp modulio ir padalijimo operatoriaus yra tas, kad:

  • Operatoriaus modulis (%) grąžina likutį, padalijus vieną skaičių su kitu.
  • Padalinkite operatorių (/) grąžina koeficientą padalijus vieną skaičių su kitu.