एक सरणी एक ही डेटा प्रकार के तत्वों का एक कंटेनर है। उत्पाद सरणी पहेली में, सभी तत्वों का उत्पाद पाया जाता है।
इस उत्पाद सरणी पहेली में, हमें तत्व को छोड़कर सरणी के सभी तत्वों के उत्पाद को खोजने की आवश्यकता है। शर्त यह है कि आप डिवीजन ऑपरेटर . का उपयोग नहीं कर सकते हैं और इसे किसी अन्य सरणी में संग्रहीत करें।
इसे हल करने के लिए हम दो उत्पाद बनाएंगे, एक सभी बाएं तत्वों के लिए और एक सभी सही तत्वों के लिए। और फिर वांछित उत्पाद प्राप्त करने के लिए इस बाएँ और दाएँ उत्पादों को जोड़ना।
उदाहरण
#include<stdio.h> #include<stdlib.h> void productfind(int arr[], int n) { int *left = (int *)malloc(sizeof(int)*n); int *right = (int *)malloc(sizeof(int)*n); int *prod = (int *)malloc(sizeof(int)*n); int i, j; left[0] = 1; right[n-1] = 1; for(i = 1; i < n; i++) left[i] = arr[i-1]*left[i-1]; for(j = n-2; j >=0; j--) right[j] = arr[j+1]*right[j+1]; for (i = 0; i < n; i++) prod[i] = left[i] * right[i]; for (i = 0; i < n; i++) printf("%d ", prod[i]); return; } int main() { int arr[] = {10, 3, 5, 6, 2}; printf("The array is : \n"); int n = sizeof(arr)/sizeof(arr[0]); for(int i = 0;i < n; i++){ printf("%d ",arr[i]); } printf("The product array is: \n"); productfind(arr, n); }
आउटपुट
The array is : 10 3 5 6 2 The product array is: 180 600 360 300 900