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

Tìm max trong mảng struct bằng C ++.

Ở đây chúng ta sẽ xem cách lấy max trong mảng struct. Giả sử có một cấu trúc như dưới đây được đưa ra. Chúng ta phải tìm phần tử tối đa của một mảng có kiểu cấu trúc đó.

struct Height{
   int feet, inch;
};

Ý tưởng là thẳng về phía trước. Chúng tôi sẽ duyệt qua mảng và theo dõi giá trị tối đa của phần tử mảng tính bằng inch. Trong đó giá trị là 12 * feet + inch

Ví dụ

#include<iostream>
#include<algorithm>
using namespace std;
struct Height{
   int feet, inch;
};
int maxHeight(Height h_arr[], int n){
   int index = 0;
   int height = INT_MIN;
   for(int i = 0; i < n; i++){
      int temp = 12 * (h_arr[i].feet) + h_arr[i].inch;
      if(temp > height){
         height = temp;
         index = i;
      }
   }
   return index;
}
int main() {
   Height h_arr[] = {{1,3},{10,5},{6,8},{3,7},{5,9}};
   int n = sizeof(h_arr)/sizeof(h_arr[0]);
   int max_index = maxHeight(h_arr, n);
   cout << "Max Height: " << h_arr[max_index].feet << " feet and " << h_arr[max_index].inch << " inches";
}

Đầu ra

Max Height: 10 feet and 5 inches