Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में सरणी का औसत (पुनरावृत्त और पुनरावर्ती)


N पूर्णांकों की एक सरणी arr[N] दी गई है, कार्य arr[N] का औसत निकालना है। परिणाम प्राप्त करने के लिए हम या तो पुनरावृत्त दृष्टिकोण या पुनरावर्ती दृष्टिकोण का उपयोग कर सकते हैं। हम दिए गए समाधान में दोनों दिखाएंगे।

सरणी का औसत सरणी के सभी तत्वों का योग तत्वों की संख्या से विभाजित होगा।

पुनरावृत्त विधि

पुनरावृत्त दृष्टिकोण में, हम for-loop, while-loop या do-while लूप जैसे लूप का उपयोग करते हैं जो कथनों को तब तक निष्पादित करता है जब तक शर्त सत्य रहती है जिसका अर्थ है 1।

आइए एक उदाहरण लें और फिर चर्चा करें कि इसे पुनरावृत्त दृष्टिकोण का उपयोग करके कैसे प्राप्त किया जा सकता है।

इनपुट

arr[] = {1, 2, 4, 5, 8}

आउटपुट

4

व्याख्या

सभी तत्वों का योग = 1+2+4+5+8 = 20, तत्वों की कुल संख्या = 5, औसत = 20/5 = 4

इनपुट

arr[] = {10, 20, 30, 40}

आउटपुट

25

समस्या को हल करने के लिए उपयोग किया गया दृष्टिकोण (पुनरावृत्त)

  • लूप का उपयोग करके सरणी के प्रत्येक तत्व को पुनरावृत्त करें।
  • सरणी के अंत तक पहुंचने तक प्रत्येक तत्व को जोड़ें।
  • कुल तत्वों की संख्या से योग को विभाजित करें और औसत लौटाएं।

एल्गोरिदम

शुरुआत
चरण 1 → पुनरावृत्त विधि का उपयोग करके औसत की गणना के लिए फ़ंक्शन घोषित करें
double avg(int arr[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++)
        sum += arr[i];
    return sum / size;
}

चरण 2 → main() में
int arr[] = {2, 3, 1, 6, 8, 10};
int size = sizeof(arr) / sizeof(arr[0]);
avg(arr, size);
रुकें

उदाहरण

#include <iostream>
using namespace std;

double avg(int arr[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++)
        sum += arr[i];
    return sum / size;
}

int main() {
    int arr[] = {2, 3, 1, 6, 8, 10};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "पुनरावृत्त विधि का उपयोग करके सरणी का औसत: " << avg(arr, size) << endl;
    return 0;
}

आउटपुट

यदि उपरोक्त कोड चलाया जाता है तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:

पुनरावृत्त विधि का उपयोग करके सरणी का औसत: 5

पुनरावर्ती विधि

तो पुनरावर्ती दृष्टिकोण क्या है? पुनरावर्ती दृष्टिकोण में हम वांछित परिणाम प्राप्त होने तक किसी फ़ंक्शन को बार-बार पुनरावर्ती रूप से कॉल करते हैं। पुनरावर्ती दृष्टिकोण में फ़ंक्शन द्वारा लौटाए गए मान स्टैक मेमोरी में संग्रहीत होते हैं।

आइए एक उदाहरण लें और फिर चर्चा करें कि इसे पुनरावृत्त दृष्टिकोण का उपयोग करके कैसे प्राप्त किया जा सकता है।

इनपुट

arr[] = {2, 4, 6, 8}

आउटपुट

5

व्याख्या

सभी तत्वों का योग = 2+4+6+8 = 20, तत्वों की कुल संख्या = 4, औसत = 20/4 = 5

इनपुट

arr[] = {12, 23, 45, 15}

आउटपुट

19

समस्या को हल करने के लिए उपयोग किया गया दृष्टिकोण (पुनरावर्ती)

  • हम फ़ंक्शन को बार-बार तब तक कॉल करेंगे जब तक हम सरणी के अंत तक नहीं पहुंच जाते।
  • हम सरणी के प्रत्येक तत्व को जोड़ेंगे और जब हम सरणी के अंत तक पहुंच जाएंगे, तो हम सरणी का औसत लौटाएंगे।

एल्गोरिदम

शुरुआत
चरण 1 → पुनरावर्ती विधि का उपयोग करके औसत की गणना के लिए फ़ंक्शन घोषित करें
double recursive(int arr[], int i, int size) {
    if (i == size - 1)
        return arr[i];
    if (i == 0)
        return ((arr[i] + recursive(arr, i + 1, size)) / size);
    return (arr[i] + recursive(arr, i + 1, size));
}

चरण 2 → double avg(int arr[], int size) {
    return recursive(arr, 0, size);
}

चरण 3 → main() में
int arr[] = {1, 5, 3, 2, 6, 7};
int size = sizeof(arr) / sizeof(arr[0]);
average(arr, size);
रुकें

उदाहरण

#include <iostream>
using namespace std;

double recursive(int arr[], int i, int size) {
    if (i == size - 1)
        return arr[i];
    if (i == 0)
        return ((arr[i] + recursive(arr, i + 1, size)) / size);
    return (arr[i] + recursive(arr, i + 1, size));
}

double average(int arr[], int size) {
    return recursive(arr, 0, size);
}

int main() {
    int arr[] = {1, 5, 3, 2, 6, 7};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "पुनरावर्ती दृष्टिकोण का उपयोग करके सरणी का औसत: " << average(arr, size) << endl;
    return 0;
}

आउटपुट

यदि उपरोक्त कोड चलाया जाता है तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:

पुनरावर्ती दृष्टिकोण का उपयोग करके सरणी का औसत: 4

  1. - C प्रोग्राम में बाइनरी सर्च (रिकर्सिव और इटरेटिव)

    बाइनरी सर्च एक खोज एल्गोरिदम है जिसका उपयोग एक सॉर्टेड ऐरे में किसी तत्व (टारगेट वैल्यू) की स्थिति खोजने के लिए किया जाता है। बाइनरी सर्च लागू करने से पहले ऐरे को सॉर्ट किया जाना चाहिए। बाइनरी सर्च को इन नामों से भी जाना जाता है: लॉगरिदमिक सर्च, बाइनरी चॉप, हाफ इंटरवल सर्च। कार्यप्रणाली बाइनरी सर

  1. C प्रोग्राम: सरणी के तत्वों का गुणनफल C प्रोग्राम: सरणी के तत्वों का गुणनफल

    समस्या विवरण एक सरणी arr[n] दी गई है, इसके सभी तत्वों का गुणनफल ज्ञात करें। उदाहरण सरणीगुणनफलगणना {10, 20, 3, 4, 8}1920010×20×3×4×8 {1, 2, 3, 4, 3, 2, 1}1441×2×3×4×3×2×1 {5, 0, 10}0शून्य से गुणनफल = 0 एल्गोरिदम result = 1 आरंभ करें प्रत्येक तत्व के लिए: result *= arr[i] result लौटाएं C प्

  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द