मान लीजिए हमारे पास दो संख्याएं a और b हैं। हमें एक फंक्शन परिभाषित करना है जो (a + b) और (a - b) दोनों की गणना कर सके। लेकिन C++ में एक फंक्शन का उपयोग करके हम अधिकतम एक मान लौटा सकते हैं। एक से अधिक आउटपुट ढूंढने के लिए, हम पॉइंटर्स का उपयोग करके फंक्शन आर्गुमेंट में आउटपुट पैरामीटर का उपयोग कर सकते हैं, और उन वेरिएबल्स के पते का उपयोग करके उस फंक्शन को कॉल कर सकते हैं। यहां इस समस्या में हम a को a+b से और b को a-b से अपडेट करेंगे। जब हम फंक्शन को कॉल करेंगे तो हमें इन दो वेरिएबल्स का पता पास करना होगा।
उदाहरण के लिए, यदि इनपुट a = 15, b = 18 है, तो आउटपुट होगा: a + b = 33 and a - b = -3
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- solve() फंक्शन परिभाषित करें, यह a और b के पते लेगा
- temp := उन वेरिएबल्स के मानों का योग जिनके पते दिए गए हैं
- b := उन वेरिएबल्स के मानों का अंतर जिनके पते दिए गए हैं
- a = temp
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <iostream> using namespace std; int solve(int *a, int *b){ int temp = *a + *b; *b = *a - *b; *a = temp; } int main(){ int a = 15, b = 18; solve(&a, &b); cout << "a + b = " << a << " and a - b = " << b; } इनपुट
15, 18
आउटपुट
a + b = 33 and a - b = -3