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

सी प्रोग्राम में एक सरणी में अधिकतम और मूल्य के साथ प्रिंट जोड़ी।

समस्या के अनुसार हमें n धनात्मक पूर्णांकों की एक सरणी दी जाती है, हमें सरणी से अधिकतम और मान वाला एक युग्म खोजना होता है।

उदाहरण

Input: arr[] = { 4, 8, 12, 16 }
Output: pair = 8 12
The maximum and value= 8

Input:arr[] = { 4, 8, 16, 2 }
Output: pair = No possible AND
The maximum and value = 0

अधिकतम और मान खोजने के लिए किसी सरणी में अधिकतम और मान ज्ञात करने के समान है। प्रोग्राम को तत्वों की जोड़ी का पता लगाना चाहिए जिसके परिणामस्वरूप प्राप्त और मूल्य हो। तत्वों को खोजने के लिए, बस पूरे सरणी को पार करें और प्राप्त अधिकतम और मूल्य (परिणाम) के साथ प्रत्येक तत्व का और मान ढूंढें और यदि एआर [i] और परिणाम ==परिणाम, इसका मतलब है कि एआर [i] वह तत्व है जो होगा अधिकतम और मूल्य उत्पन्न करें। साथ ही, यदि अधिकतम और मान (परिणाम) शून्य है तो हमें उस स्थिति में "संभव नहीं" प्रिंट करना चाहिए।

एल्गोरिदम

int checkBit(int pattern, int arr[], int n)
START
STEP 1: DECLARE AND INITIALIZE count AS 0
STEP 2: LOOP FOR i = 0 AND i < n AND i++
   IF (pattern & arr[i]) == pattern THEN,
      INCREMENT count BY 1
STEP 3: RETURN count
STOP
int maxAND(int arr[], int n)
START
STEP 1: DECLARE AND INITIALIZE res = 0 AND count
STEP 2: LOOP FOR bit = 31 AND bit >= 0 AND bit--
   count = GOTO FUNCTION checkBit(res | (1 << bit), arr,n)
   IF count >= 2 THEN,
      res |= (1 << bit);
   END IF
   IF res == 0
      PRINT "no possible AND”
   ELSE
      PRINT "Pair with maximum AND= "
   count = 0;
   LOOP FOR int i = 0 AND i < n && count < 2 AND i++
      IF (arr[i] & res) == res THEN,
         INCREMENT count BY 1
         PRINT arr[i]
      END IF
   END FOR
END FOR
RETURN res
STOP

उदाहरण

#include <stdio.h>
int checkBit(int pattern, int arr[], int n){
   int count = 0;
   for (int i = 0; i < n; i++)
      if ((pattern & arr[i]) == pattern)
         count++;
   return count;
}
// Function for finding maximum AND value pair
int maxAND(int arr[], int n){
   int res = 0, count;
   for (int bit = 31; bit >= 0; bit--) {
      count = checkBit(res | (1 << bit), arr, n);  
      if (count >= 2)
         res |= (1 << bit);
   }
   if (res == 0) //if there is no pair available
      printf("no possible and\n");
   else { //Printing the pair available
      printf("Pair with maximum AND= ");
      count = 0;
      for (int i = 0; i < n && count < 2; i++) {
         // incremnent count value after
         // printing element
         if ((arr[i] & res) == res) {
            count++;
            printf("%d ", arr[i]);
         }
      }
   }
   return res;
}
int main(int argc, char const *argv[]){
   int arr[] = {5, 6, 2, 8, 9, 12};
   int n = sizeof(arr)/sizeof(arr[0]);
   int ma = maxAND(arr, n);
   printf("\nThe maximum AND value= %d ", ma);
   return 0;
}

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

pair = 8 9
The maximum and value= 8

  1. सी प्रोग्राम में दिए गए आकार के अधिकतम योग वर्ग उप-मैट्रिक्स को प्रिंट करें।

    NxN के एक मैट्रिक्स को देखते हुए MxM का एक उप-मैट्रिक्स खोजें जहाँ M=1 ऐसा है कि मैट्रिक्स MxM के सभी तत्वों का योग अधिकतम है। मैट्रिक्स NxN के इनपुट में शून्य, धनात्मक और ऋणात्मक पूर्णांक मान हो सकते हैं। उदाहरण Input:    {{1, 1, 1, 1, 1},    {2, 2, 2, 2, 2},    {3,

  1. सी प्रोग्राम में ओ (एन) समय और ओ (1) स्पेस में सरणी के बाएं रोटेशन को प्रिंट करें।

    हमें कुछ आकार n और कई पूर्णांक मानों की एक सरणी दी गई है, हमें किसी दिए गए अनुक्रमणिका k से एक सरणी को घुमाने की आवश्यकता है। हम − . जैसे इंडेक्स k से किसी ऐरे को घुमाना चाहते हैं उदाहरण Input: arr[] = {1, 2, 3, 4, 5}    K1 = 1    K2 = 3    K3 = 6 Output:   &nbs

  1. सी प्रोग्राम में सापेक्ष क्रम में सरणी में तत्वों की अंतिम घटना को प्रिंट करें।

    तत्वों के साथ एक सरणी a [] दिया गया है और कार्य सूची में दिए गए तत्वों की अंतिम घटनाओं को मुद्रित करना है। यहां हमें न केवल डुप्लिकेट तत्वों को हटाना है, बल्कि हमें पिछली बार होने वाले तत्वों के अनुसार तत्वों की घटनाओं के क्रम को भी बनाए रखना है। जैसे हमारे पास 6 तत्वों की एक सरणी है जिसमें कुछ डुप