Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 배열에서 주어진 두 요소 사이의 요소 수 계산

<시간/>

정수 요소와 두 개의 숫자 시작 및 끝을 포함하는 배열이 주어지며 작업은 배열의 시작과 끝 사이에 있는 요소 수를 계산하는 것입니다.

배열은 같은 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조입니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다. 시작 요소가 여러 번 발생하면 시작 요소의 첫 번째 발생을 고려하고 끝 요소가 여러 번 발생하면 끝 요소의 끝 발생을 고려합니다.

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[]

    와 같이 배열을 입력합니다.
  • 배열의 요소에 따라 정수 값을 반환하는 length() 함수를 사용하여 두 배열의 길이를 계산합니다.

  • i가 배열의 크기보다 작아질 때까지 i에서 0까지 루프를 시작합니다.

  • 루프 내에서 arr[i] =start then break

    인지 확인하십시오.
  • i>size-1인지 확인한 다음 반환

  • j에서 size-1 및 j>=i+1 및 j--

    로 다른 루프 시작
  • arr[j]=end then break

    인지 확인
  • 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