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

Tìm tất cả các phần tử trong mảng có ít nhất hai phần tử lớn hơn trong C ++

Giả sử, chúng ta có một mảng gồm n số. Chúng ta phải tìm tất cả các phần tử trong mảng có ít nhất hai phần tử lớn hơn. Nếu mảng giống như A =[2, 8, 7, 1, 5], thì kết quả sẽ là [2, 1, 5]

Để giải quyết vấn đề này, chúng tôi sẽ tìm phần tử tối đa thứ hai, sau đó in tất cả các phần tử nhỏ hơn hoặc bằng giá trị tối đa thứ hai.

Ví dụ

#include<iostream>
using namespace std;
void searchElements(int arr[], int n) {
   int first_max = INT_MIN, second_max = INT_MIN;
   for (int i = 0; i < n; i++) {
      if (arr[i] > first_max) {
         second_max = first_max;
         first_max = arr[i];
      } else if (arr[i] > second_max)
         second_max = arr[i];
   }
   for (int i = 0; i < n; i++)
   if (arr[i] < second_max)
   cout << arr[i] << " ";
}
int main() {
   int arr[] = { 2, 9, 1, 7, 5, 3, 17};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Elements are: ";
   searchElements(arr, n);
}

Đầu ra

Elements are: 2 1 7 5 3