मान लीजिए हमारे पास दो संख्याएं a और b हैं। हमें एक फंक्शन परिभाषित करना है जो (a + b) और (a - b) दोनों की गणना कर सके। लेकिन C में एक फंक्शन का उपयोग करके, हम अधिकतम एक मान वापस कर सकते हैं। एक से अधिक आउटपुट ज्ञात करने के लिए, हम फंक्शन आर्गुमेंट में पॉइंटर्स का उपयोग करके आउटपुट पैरामीटर्स का उपयोग कर सकते हैं। यहां इस समस्या में हम a को a+b से और b को a-b से अपडेट करेंगे। जब हम फंक्शन को कॉल करेंगे तो हमें इन दो वेरिएबल्स के पते पास करने होंगे।
उदाहरण के लिए, यदि इनपुट a = 5, b = 8 है, तो आउटपुट a + b = 13 और a - b = -3 होगा।
हल करने के चरण
solve() फंक्शन परिभाषित करें, जो a और b के पते लेगा
temp := उन वेरिएबल्स के मानों का योग जिनके पते दिए गए हैं
b := उन वेरिएबल्स के मानों का अंतर जिनके पते दिए गए हैं
a = temp
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <stdio.h> int solve(int *a, int *b){ int temp = *a + *b; *b = *a - *b; *a = temp; } int main(){ int a = 5, b = 8; solve(&a, &b); printf("a + b = %d and a - b = %d", a, b); } इनपुट
a = 5, b = 8
आउटपुट
a + b = 13 and a - b = -3