ที่นี่เราจะดูวิธีรับค่าสูงสุดในอาร์เรย์ struct สมมติว่ามี struct ดังด้านล่าง เราต้องหาองค์ประกอบสูงสุดของอาร์เรย์ประเภทโครงสร้างนั้น
struct Height{
int feet, inch;
}; ความคิดนั้นตรงไปตรงมา เราจะสำรวจอาร์เรย์ และติดตามค่าสูงสุดขององค์ประกอบอาร์เรย์ในหน่วยนิ้ว โดยที่ค่าคือ 12*ฟุต + นิ้ว
ตัวอย่าง
#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";
} ผลลัพธ์
Max Height: 10 feet and 5 inches