दो सरणियों arr1[] और arr2[] क्रमशः कुछ आकार n1 और n2 को देखते हुए, हमें पहली सरणी arr1[] के अधिकतम तत्व और दूसरे के न्यूनतम तत्व का गुणनफल खोजना होगा सरणी arr2 []।
जैसे हमारे पास arr1 [] ={5, 1, 6, 8, 9} और arr2 [] ={2, 9, 8, 5, 3} में तत्व हैं, इसलिए arr1 में अधिकतम तत्व 9 है और न्यूनतम तत्व में है arr2 2 है इसलिए दोनों का गुणनफल 9*2 =18 है, इसी तरह हमें दी गई समस्या को हल करने के लिए एक प्रोग्राम लिखना होगा।
इनपुट
arr1[] = {6, 2, 5, 4, 1} arr2[] = {3, 7, 5, 9, 6}
आउटपुट
18
स्पष्टीकरण
MAX(arr1) * MIN(arr2) → 6 * 3 = 18
इनपुट
arr1[] = { 2, 3, 9, 11, 1 } arr2[] = { 5, 4, 2, 6, 9 }
आउटपुट
22
स्पष्टीकरण
MAX(arr1) * MIN(arr2) → 11 * 2 = 22
समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है
-
हम इनपुट के रूप में दो सरणियाँ arr1 और arr2 करेंगे
-
हम दोनों सरणियों को आरोही क्रम में क्रमबद्ध करेंगे।
-
हम arr1 के अंतिम तत्व (अधिकतम तत्व) और arr2 के पहले तत्व (न्यूनतम तत्व) को गुणा करेंगे।
-
उत्पाद लौटाएं।
एल्गोरिदम
Start In function int sortarr(int arr[], int n) Step 1→ Declare and initialize temp Step 2→ For i = 0 and i < n-1 and ++i For j = i+1 and j<n and j++ If arr[i]> arr[j] then, Set temp as arr[i] Set arr[i] as arr[j] Set arr[j] as temp In Function int minMaxProduct(int arr1[], int arr2[], int n1, int n2) Step 1→ Call sortarr(arr1, n1) Step 2→ Call sortarr(arr2, n2) Step 3→ Return (arr1[n1 - 1] * arr2[0]) In Function int main() Step 1→ Declare and Initialize arr1[] = { 2, 3, 9, 11, 1 } Step 2→ Declare and Initialize arr2[] = { 5, 4, 2, 6, 9 } Step 3→ Declare and Initialize n1, n2 and initialize the size of both arrays Step 4→ Print minMaxProduct (arr1, arr2, n1, n2)) Stop
उदाहरण
#include <stdio.h> int sortarr(int arr[], int n){ int temp; for (int i = 0; i < n-1; ++i){ for(int j = i+1; j<n; j++){ if(arr[i]> arr[j]){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } return 0; } int minMaxProduct(int arr1[], int arr2[], int n1, int n2){ // Sort the arrays to get // maximum and minimum sortarr(arr1, n1); sortarr(arr2, n2); // Return product of // maximum and minimum. return arr1[n1 - 1] * arr2[0]; } int main(){ int arr1[] = { 2, 3, 9, 11, 1 }; int arr2[] = { 5, 4, 2, 6, 9 }; int n1 = sizeof(arr1) / sizeof(arr1[0]); int n2 = sizeof(arr1) / sizeof(arr1[0]); printf("%d\n",minMaxProduct (arr1, arr2, n1, n2)); return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
22