हमें एक सरणी दी गई है जिसमें पूर्णांक तत्व और दो संख्याएँ प्रारंभ और अंत होती हैं और कार्य एक सरणी में प्रारंभ और अंत के बीच मौजूद तत्वों की गणना करना है।
एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रहीत करने के लिए एक सरणी का उपयोग किया जाता है, लेकिन एक सरणी को उसी प्रकार के चर के संग्रह के रूप में सोचना अक्सर अधिक उपयोगी होता है। यदि प्रारंभ तत्व कई बार हो रहा है तो हम प्रारंभ तत्व की पहली घटना पर विचार करेंगे और यदि अंत तत्व कई बार हो रहा है तो हम अंत तत्व की अंतिम घटना पर विचार करेंगे।
उदाहरण के लिए
Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
Start = 1 and End = 7
Output − count is 5 स्पष्टीकरण - दिए गए सरणी में, 7 तत्व हैं और श्रेणी 1-7 है। तो, इस श्रेणी के बीच में कुल 5 तत्व होते हैं।
Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
Start = 7 and End = 9
Output − count is 0 स्पष्टीकरण - दिए गए सरणी में, 7 तत्व हैं और श्रेणी 7-9 है। तो, इस श्रेणी के बीच में कोई तत्व नहीं है इसलिए गिनती 0 है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
एक सरणी इनपुट करें मान लें, int arr[]
-
लंबाई () फ़ंक्शन का उपयोग करके दोनों सरणियों की लंबाई की गणना करें जो एक सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।
-
लूप को i से 0 तक प्रारंभ करें जब तक कि i किसी सरणी के आकार से कम न हो
-
लूप के अंदर, जांचें कि क्या arr[i] =start फिर break
-
जांचें कि क्या i>आकार-1 फिर वापस आ गया है
-
j से size-1 और j>=i+1 और j--
. के साथ एक और लूप प्रारंभ करें -
जाँच करें कि क्या arr[j]=end फिर ब्रेक करें
-
जांचें कि क्या j=1 फिर 0 पर लौटें
-
वापसी j-i-1
-
परिणाम प्रिंट करें।
उदाहरण
#include <iostream>
using namespace std;
// For counting the numbers between the two elements
int countelements(int ar[], int n, int start, int end){
// Find start
int i = 0;
for (i = 0; i < n; i++){
if (ar[i] == start){
break;
}
}
// If start is not present or present at the last
if (i >= n-1){
return 0;
}
// Find end
int j;
for (j = n-1; j >= i+1; j--){
if (ar[j] == end){
break;
}
}
// If end is not present
if (j == i){
return 0;
}
// number of elements between the two elements
return (j - i - 1);
}
// Main Function
int main(){
int ar[] = { 1, 6, 2, 5, 9, 8, 3, 7, 4 };
int n = sizeof(ar) / sizeof(ar[0]);
int start = 5, end = 4;
cout <<"count is " <<countelements(ar, n, start, end);
return 0;
} आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -
count is 4