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

C++에서 배열의 각 요소에 대한 능가 수 찾기

<시간/>

하나의 배열 A가 주어졌다고 가정합니다. 우리는 해당 배열의 각 요소를 능가하는 수를 찾아야 합니다. 능가자는 현재 요소 배열의 오른쪽에 있는 더 큰 요소입니다. A ={2, 7, 5, 3, 0, 8, 1}이고 능가자는 {4, 1, 1, 1, 2, 0, 0}이므로 2는 오른쪽에 4개의 숫자가 있고 더 큰 수입니다. 4보다 크고 다른 사람들도 같은 규칙입니다. 솔루션은 매우 간단합니다. 두 개의 중첩 루프가 있을 것입니다. 각 요소에 대해 초과 항목을 계산한 다음 다른 배열에 저장합니다.

예시

#include <iostream>
using namespace std;
void gerSurpassers(int arr[], int surpassers[], int n){
   for(int i = 0; i<n; i++){
      int count = 0;
      for(int j = i+1; j<n; j++){
         if(arr[j] > arr[i])
            count++;
      }
      surpassers[i] = count;
   }
}
void displayArray(int arr[], int n){
   for(int i = 0; i<n; i++){
      cout << arr[i] << " ";
   }
   cout << "\n";
}
int main() {
   int arr[] = {2, 7, 5, 3, 0, 8, 1};
   int n = sizeof(arr) / sizeof(arr[0]);
   int surpassers[n];
   cout << "Elements :"; displayArray(arr, n);
   gerSurpassers(arr, surpassers, n);
   cout << "Surpassers:"; displayArray(surpassers, n);
}

출력

Elements :2 7 5 3 0 8 1
Surpassers:4 1 1 1 2 0 0