Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में एक ही सरणी में प्रत्येक तत्व का तल

इस समस्या में, हमें पूर्णांक तत्वों का एक सरणी गिरफ्तारी [] दिया जाता है। हमारा काम एक ही सरणी में प्रत्येक तत्व के तल को खोजने के लिए एक प्रोग्राम बनाना है। यदि किसी तत्व का तल मौजूद है, तो हम फर्श को प्रिंट करेंगे अन्यथा प्रिंट -1।

सरणी में किसी तत्व का तल निकटतम तत्व है जो सरणी में तत्व से छोटा या उसके बराबर है।

समस्या को समझने के लिए एक उदाहरण लेते हैं

Input: arr[] = {3, 1, 5 ,7, 8, 2}
Output: 2 -1 3 5 7 1

समाधान दृष्टिकोण

नेस्टेड लूप का उपयोग करके समस्या को हल करने का एक तरीका है। सरणी के प्रत्येक तत्व को लूप करने के लिए एक और सरणी में तत्व के तल को खोजने के लिए आंतरिक एक।

समस्या को हल करने के लिए एक और तरीका क्रमबद्ध सरणी को स्टोर करने के लिए एक अतिरिक्त सरणी का उपयोग कर रहा है। फिर उस मूल सरणी पर लूप करें और बाइनरी खोज एल्गोरिथम का उपयोग करके क्रमबद्ध सरणी में तत्व के तल को खोजें।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <bits/stdc++.h>
using namespace std;

void printFloorEle(int arr[], int n){
   vector<int> sortedArr(arr, arr + n);
   sort(sortedArr.begin(), sortedArr.end());
   for (int i = 0; i < n; i++) {
      if (arr[i] == sortedArr[0]) {
         if (arr[i] == sortedArr[1])
            cout<<arr[i];
         else
            cout<<-1;
         cout<<"\t";
         continue;
      }
      auto iterator = lower_bound(sortedArr.begin(),sortedArr.end(), arr[i]);
      if (iterator != sortedArr.end() && *(iterator + 1) == arr[i])
         cout<<arr[i]<<"\t";
      else
         cout<<*(iterator - 1)<<"\t";
   }
}
int main(){
   int arr[] = { 3, 1, 5 ,7, 8, 2 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The Floor of every element of the given array is ";
   printFloorEle(arr, n);
   return 0;
}

आउटपुट

The Floor of every element of the given array is 2 -1 3 5 7
1
. है
  1. सी ++ एसटीएल में ऐरे प्राप्त () फ़ंक्शन?

    इस खंड में हम C++ STL में ऐरे का get() फंक्शन देखेंगे। इस फ़ंक्शन का उपयोग सरणी कंटेनर के ith तत्व को प्राप्त करने के लिए किया जाता है। सिंटैक्स नीचे जैसा है - सिंटैक्स get<i> array_name यह फ़ंक्शन दो अनिवार्य पैरामीटर लेता है। सूचकांक पैरामीटर है। इसका उपयोग सरणी की ith स्थिति को इंगित करने

  1. सी ++ प्रोग्राम एसटीएल में ऐरे को लागू करने के लिए

    ऐरे और स्यूडोकोड पर अलग-अलग ऑपरेशन: Begin In main(),    While TRUE do       Prints some choices.       Take input of choice.       Start the switch case          When case is 1             P

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

    एक सरणी में कई तत्व होते हैं और एक सरणी में सबसे बड़ा तत्व वह होता है जो अन्य तत्वों से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा तत्व है और यह इंडेक्स 2 पर है। किसी सरणी के सबसे बड़े तत्व को खोजने का प्रोग्राम इस प्रकार दिया गया है। उदाहरण #include <iostream> u