मॉड्यूलो ऑपरेटर (%)
- प्रतीक:
% - पूर्णांक विभाजन का शेषफल (remainder) देता है
- उदाहरण:
17 % 5 = 2(क्योंकि 17 = 3×5 + 2)
विभाजन ऑपरेटर (/)
- प्रतीक:
/ - पूर्णांक विभाजन का भागफल (quotient) देता है
- उदाहरण:
17 / 5 = 3(दशमलव भाग छोड़ दिया जाता है)
प्रोग्राम 1: मूल अंतर दिखाना
#include <stdio.h>
int main() {
int a, b, c;
printf("a, b, c मान दर्ज करें: ");
scanf("%d %d %d", &a, &b, &c);
printf("a / b = %d\t a %% b = %d\n", a / b, a % b);
printf("(a+10) / b = %d\t (a+10) %% b = %d\n", (a + 10) / b, (a + 10) % b);
return 0;
}
आउटपुट
a, b, c मान दर्ज करें: 2 4 6
a / b = 0 a % b = 2
(a+10) / b = 3 (a+10) % b = 0
व्याख्या (a=2, b=4 के लिए)
| अभिव्यक्ति | गणना | परिणाम |
|---|---|---|
| a / b | 2 / 4 | 0 (पूर्णांक विभाजन) |
| a % b | 2 % 4 | 2 (शेषफल) |
| (a+10) / b | 12 / 4 | 3 |
| (a+10) % b | 12 % 4 | 0 |
प्रोग्राम 2: पॉइंटर वेरिएबल के साथ मॉड्यूलो और विभाजन
#include <stdio.h>
void main() {
int num1, num2;
int *p1, *p2;
p1 = &num1;
p2 = &num2;
int div, mod;
printf("num1 और num2 के मान दर्ज करें: ");
scanf("%d %d", &num1, &num2);
div = *p1 / *p2;
mod = *p1 % *p2;
printf("भागफल (Division) = %d\n", div);
printf("शेषफल (Modulus) = %d\n", mod);
}
आउटपुट
num1 और num2 के मान दर्ज करें: 30 20
भागफल (Division) = 1
शेषफल (Modulus) = 10
महत्वपूर्ण संबंध
किसी भी पूर्णांक a और b (b ≠ 0) के लिए:
a = (a / b) * b + (a % b)
यह पहचान हमेशा सत्य होती है और विभाजन और मॉड्यूलो के बीच संबंध को दर्शाती है।
ऋणात्मक संख्याओं के साथ व्यवहार (C99 मानक)
| अभिव्यक्ति | परिणाम |
|---|---|
| -7 / 3 | -2 (शून्य की ओर काटा जाता है) |
| -7 % 3 | -1 |
| 7 / -3 | -2 |
| 7 % -3 | 1 |
नोट: C99 में पूर्णांक विभाजन शून्य की ओर काटा जाता है (truncated toward zero)।