Решить в с++
Известны данные о росте 15-ти юношей класса, упорядоченные по убыванию. Нет ни одной пары учеников, имеющих одинаковый рост. В начале
учебного года в класс поступил новый ученик (известно, что его рост не совпадает с ростом ни одного из учеников класса, превышает рост самого низкого ученика и меньше роста самого высокого).
Определить фамилию ученика, рост которого меньше всего отличается от
роста "новенького".
Ввод данных лучше делать с файла.
Answers & Comments
Файл с фамилиями и ростом прикреплён.
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
class People {
public:
string surname;
int height;
};
signed main() {
ifstream f;
People ppl[15];
int j = 0;
People newPpl;
try {
cout << "Input surname and height new people:\n";
cin >> newPpl.surname >> newPpl.height;
try {
f.open("guys.txt");
while (!f.eof()) {
f >> ppl[j].surname >> ppl[j].height;
j++;
}
}
catch (...) {
cout << "Error with file!";
}
int _minR = abs(newPpl.height - ppl[0].height);
string buff = ppl[0].surname;
for (int i = 0; i < 15; i++) {
if (abs(newPpl.height - ppl[i].height) < _minR) {
_minR = abs(newPpl.height - ppl[i].height);
buff = ppl[i].surname;
}
}
cout << endl << buff;
}
catch (...) {
cout << "Error in main programm!";
}
return 0;
}