दो सरणियां 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 के पहले तत्व (न्यूनतम तत्व) को गुणा करेंगे।
गुणनफल लौटाएं।
एल्गोरिदम
शुरू फ़ंक्शन int sortarr(int arr[], int n) में चरण 1 → temp घोषित और प्रारंभ करें चरण 2 → i = 0 से i < n-1 और ++i के लिए j = i+1 से j < n और j++ के लिए यदि arr[i] > arr[j] तो, temp को arr[i] के रूप में सेट करें arr[i] को arr[j] के रूप में सेट करें arr[j] को temp के रूप में सेट करें फ़ंक्शन int minMaxProduct(int arr1[], int arr2[], int n1, int n2) में चरण 1 → sortarr(arr1, n1) कॉल करें चरण 2 → sortarr(arr2, n2) कॉल करें चरण 3 → (arr1[n1 - 1] * arr2[0]) लौटाएं फ़ंक्शन int main() में चरण 1 → arr1[] = { 2, 3, 9, 11, 1 } घोषित और प्रारंभ करें चरण 2 → arr2[] = { 5, 4, 2, 6, 9 } घोषित और प्रारंभ करें चरण 3 → n1, n2 घोषित और प्रारंभ करें और दोनों सरणियों का आकार प्रारंभ करें चरण 4 → minMaxProduct(arr1, arr2, n1, n2) प्रिंट करें रुकें उदाहरण
#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){ // अधिकतम और न्यूनतम प्राप्त करने के लिए // सरणियों को सॉर्ट करें sortarr(arr1, n1); sortarr(arr2, n2); // अधिकतम और न्यूनतम का गुणनफल लौटाएं। 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