समस्या
C प्रोग्रामिंग भाषा में विभाजन (/) और मॉड्यूलो (%) ऑपरेटर का उपयोग करके दो-अंकीय और तीन-अंकीय संख्या को उल्टे क्रम में कैसे प्रिंट करें?
तर्क
किसी संख्या को उल्टा करने के लिए:
- मॉड्यूलो ऑपरेटर (%): अंतिम अंक देता है (शेषफल)
- विभाजन ऑपरेटर (/): अंतिम अंक को हटाकर शेष भाग देता है (भागफल)
प्रोग्राम 1: दो-अंकीय संख्या के लिए
#include <stdio.h>
int main() {
int number;
printf("दो-अंकीय संख्या दर्ज करें: ");
scanf("%d", &number);
int firstDigit = number % 10; // इकाई का अंक
int secondDigit = number / 10; // दहाई का अंक
printf("उल्टी संख्या = %d%d\n", firstDigit, secondDigit);
return 0;
}
आउटपुट
दो-अंकीय संख्या दर्ज करें: 45
उल्टी संख्या = 54
प्रोग्राम 2: तीन-अंकीय संख्या के लिए
#include <stdio.h>
int main() {
int number, d1, d2, d3, reversed;
printf("तीन-अंकीय संख्या दर्ज करें: ");
scanf("%d", &number);
d1 = number / 100; // सैकड़े का अंक
d2 = (number % 100) / 10; // दहाई का अंक
d3 = number % 10; // इकाई का अंक
reversed = 100 * d3 + 10 * d2 + d1;
printf("उल्टी संख्या = %d\n", reversed);
return 0;
}
आउटपुट
तीन-अंकीय संख्या दर्ज करें: 479
उल्टी संख्या = 974
चरण-दर-चरण विश्लेषण (479 के लिए)
| ऑपरेशन | मान | व्याख्या |
|---|---|---|
| 479 / 100 | 4 | सैकड़े का अंक (d1) |
| 479 % 100 | 79 | अंतिम दो अंक |
| 79 / 10 | 7 | दहाई का अंक (d2) |
| 479 % 10 | 9 | इकाई का अंक (d3) |
| 100×9 + 10×7 + 4 | 974 | उल्टी संख्या |
सीमाएं
- केवल निश्चित अंकों की संख्या के लिए काम करता है (2 या 3 अंक)
- चर लंबाई की संख्याओं के लिए लूप-आधारित दृष्टिकोण (पिछला लेख) बेहतर है
- अंतिम शून्य वाली संख्याओं के लिए: 120 → 021 (प्रिंट होगा 21)
सामान्यीकृत दृष्टिकोण (किसी भी लंबाई के लिए)
int reverse(int n) {
int rev = 0;
while (n != 0) {
rev = rev * 10 + n % 10;
n /= 10;
}
return rev;
}