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

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

एल्गोरिदम

  1. result = 1 आरंभ करें
  2. प्रत्येक तत्व के लिए: result *= arr[i]
  3. result लौटाएं

C प्रोग्राम

#include <stdio.h>

long long product_array(int arr[], int n) {
    long long result = 1;
    for (int i = 0; i < n; i++) {
        result *= arr[i];
    }
    return result;
}

int main() {
    int arr[] = {10, 20, 3, 4, 8};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    printf("सरणी: ");
    for (int i = 0; i < n; i++) printf("%d ", arr[i]);
    printf("\n");
    
    printf("गुणनफल: %lld\n", product_array(arr, n));
    return 0;
}

आउटपुट

सरणी: 10 20 3 4 8
गुणनफल: 19200

महत्वपूर्ण विचार

मुद्दासमाधान
पूर्णांक ओवरफ्लोlong long (64-बिट) या double का उपयोग करें
शून्य तत्वगुणनफल 0 हो जाता है, जल्दी ब्रेक कर सकते हैं
ऋणात्मक संख्याएंसही काम करता है, चिह्न ट्रैक करता है
खाली सरणी1 लौटाएं (गुणनफल पहचान)

अनुकूलित संस्करण (जल्दी समाप्ति)

long long product_optimized(int arr[], int n) {
    long long result = 1;
    for (int i = 0; i < n; i++) {
        if (arr[i] == 0) return 0;  // जल्दी बाहर निकलें
        result *= arr[i];
    }
    return result;
}

फ्लोटिंग पॉइंट सरणी के लिए

double product_double(double arr[], int n) {
    double result = 1.0;
    for (int i = 0; i < n; i++)
        result *= arr[i];
    return result;
}

लघुगणक दृष्टिकोण (बहुत बड़ी संख्याओं के लिए)

#include <math.h>

double log_product(int arr[], int n) {
    double sum_log = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] <= 0) return NAN;  // लॉग केवल धनात्मक के लिए
        sum_log += log(arr[i]);
    }
    return exp(sum_log);  // वास्तविक गुणनफल (ओवरफ्लो हो सकता है)
}

// या केवल लॉग योग लौटाएं
double log_sum(int arr[], int n) {
    double sum = 0;
    for (int i = 0; i < n; i++)
        if (arr[i] > 0) sum += log(arr[i]);
    return sum;  // ln(गुणनफल)
}
  1. C प्रोग्राम में ऐरे रोटेशन के लिए प्रोग्राम C प्रोग्राम में ऐरे रोटेशन के लिए प्रोग्राम

    समस्या विवरण एक C प्रोग्राम लिखें जो ऐरे को n स्थिति से बाएं घुमाए। C प्रोग्रामिंग में ऐरे को n बार बाएं घुमाने का तरीका। C प्रोग्राम में ऐरे को n स्थिति से बाएं घुमाने का तर्क। उदाहरण इनपुट: arr[] = 1 2 3 4 5 6 7 8 9 10, N = 3 आउटपुट: 4 5 6 7 8 9 10 1 2 3 व्याख्या ऐरे में तत्व पढ़ें, मान लें ar

  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 नीचे दिए गए प्रोग्राम में उपयोग किया गया द

  1. पायथन प्रोग्राम: सरणी रोटेशन पायथन प्रोग्राम: सरणी रोटेशन

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक टेक्स्ट और एक पैटर्न दिया गया है, हमें पैटर्न और उसके क्रमपरिवर्तन (या एनाग्राम) की सभी घटनाओं को टेक्स्ट में प्रिंट करना है। उदाहरण # अधिकतम मान MAX = 300 # तुलना def compare(arr1, arr2): for i in range(MAX):