Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm số phần tử giữa hai phần tử đã cho trong mảng trong C ++

Chúng ta được cung cấp một mảng chứa các phần tử số nguyên và hai số bắt đầu và kết thúc và nhiệm vụ là tính số lượng các phần tử có từ đầu đến cuối trong một mảng.

Mảng là một loại cấu trúc dữ liệu có thể lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng kiểu. Mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng thường hữu ích hơn nếu coi một mảng là một tập hợp các biến cùng kiểu. Nếu phần tử bắt đầu xảy ra nhiều lần thì chúng tôi sẽ xem xét sự xuất hiện đầu tiên của phần tử bắt đầu và nếu phần tử kết thúc xảy ra nhiều lần thì chúng tôi sẽ xem xét sự xuất hiện cuối cùng của phần tử kết thúc.

Ví dụ

Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
      Start = 1 and End = 7
Output − count is 5

Giải thích - Trong mảng đã cho có 7 phần tử và dãy là 1-7. Vì vậy, giữa phạm vi này có tổng cộng 5 phần tử.

Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
      Start = 7 and End = 9
Output − count is 0

Giải thích - Trong mảng đã cho có 7 phần tử và dãy là 7-9. Vì vậy, giữa phạm vi này không có phần tử nào nên số lượng là 0.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập một mảng, giả sử int arr []

  • Tính độ dài của cả hai mảng bằng cách sử dụng hàm length () sẽ trả về một giá trị nguyên theo các phần tử trong một mảng.

  • Bắt đầu vòng lặp từ i đến 0 cho đến khi tôi nhỏ hơn kích thước của một mảng

  • Trong vòng lặp, hãy kiểm tra xem arr [i] =start rồi break

  • Kiểm tra xem tôi có> size-1 không rồi quay lại

  • Bắt đầu một vòng lặp khác với j đến size-1 và j> =i + 1 và j--

  • Kiểm tra xem arr [j] =end rồi break

  • Kiểm tra xem j =1 rồi trả về 0

  • Trả lại j-i-1

  • In kết quả.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -

Số lượng
count is 4