logo

Modulo-operatör (%) i C/C++ med exempel

I C eller C++ är moduloperator (även känd som moduloperatorn) , betecknad med %, är en aritmetisk operator . Modulo divisionsoperatören producerar återstoden av en heltalsdivision som också kallas operationens modul.

Syntax för Modulus Operator

Om x och y är heltal, då uttrycket:



x   %   y;>

uttalas som x mod y. Till exempel kommer 10 % 2 att uttalas som Ten mod Two.

Returvärde för Modulo Operator

  • Om y delar x helt, blir resultatet av uttrycket 0.
  • Om x inte är helt delbart med y, blir resultatet resten i intervallet [0, y-1]
  • (x % och) < (x/2) …om (x>= y)
  • (x % y) = x ……… om (x
  • Om y är 0, då dividera med noll är en fel vid kompilering .

Exempel på Modulo Operator

Nedan är C/C++-programmet för att demonstrera hur modulo-operatorn fungerar:

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

>

>

Restriktioner för Modulo-operatören

Modulo-operatorn har få restriktioner eller begränsningar. De % moduloperator kan inte tillämpas på flyttalstal dvs flyta eller dubbel. Om du försöker använda modulo-operatorn med flyttalskonstanter eller variabler kommer kompilatorn att ge ett fel.

Exempel 1: C/C++-program för att demonstrera begränsningarna för modulo-operatorn.

C++


försök fånga i java



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

>

>

Produktion

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-operatör för negativa operander

Resultattecknet för modulo-operatören är maskinberoende för negativa operander, eftersom åtgärden sker som ett resultat av under- eller bräddavlopp.

Exempel 2: C/C++-program för att demonstrera modulo-operatorn för negativa operander.

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

>

>

Produktion

-3 0 -3>

Notera: Returvärdet i detta fall är kompilatorberoende.

Vanliga frågor om Modulo Operator

Q1. Definiera mod.

Svar:

I C/C++ programmeringsspråk hänvisar mod till den matematiska operationen där ett tal delas med ett annat, och resten returneras.

Det kan utföras med hjälp av operatörsmodul (%) .

Q2. Vad är modaritmetik?

Svar:

Modaritmetik hänvisar till processen där ett tal fortsätter att svepa runt en viss punkt på ett sådant sätt att det alltid är mindre än den vissa punkten. Till exempel,

Tänk på antalet n = 10 och den punkt p = 20.
När vi inkrementerar n 10 gånger blir det n = 20 men i modulär aritmetik bör den på ett sätt vara mindre än den angivna punkten.

Ett sätt att göra det är att använda modulo-operatorn som:

n++; n = n % p;>

För att lära dig mer om modulär aritimatic, se artikeln – Modulär aritmatisk

Q3. Vad är skillnaden mellan modulo och divideroperator?

Svar:

Den största skillnaden mellan modulo och divisionsoperatör är att:

  • Operatörsmodul (%) returnerar resten efter att ha dividerat ett tal med ett annat.
  • Dela operatör (/) returnerar kvoten efter att ha dividerat ett tal med ett annat.