Предмет: Информатика, автор: blackmday12

Решить в с++
Известны данные о росте 15-ти юношей класса, упорядоченные по убыванию. Нет ни одной пары учеников, имеющих одинаковый рост. В начале
учебного года в класс поступил новый ученик (известно, что его рост не совпадает с ростом ни одного из учеников класса, превышает рост самого низкого ученика и меньше роста самого высокого).
Определить фамилию ученика, рост которого меньше всего отличается от
роста "новенького".

Ввод данных лучше делать с файла.


restIess: откуда мы фамилии берем? А если ввод из файла, то в каком формате там данные хранятся
blackmday12: фамилии берутся наугад. файл - это "блокнот", в котором написана фамилия ученика, а рядом рост
blackmday12: фамилии просто придумать
restIess: а данные новенького с клавы вводим?
blackmday12: да

Ответы

Автор ответа: restIess
1

Файл с фамилиями и ростом прикреплён.

#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;

}

Приложения:

blackmday12: Вау!! Спасибо)
blackmday12: мной создан еще один вопрос по с++. Посмотрите, пожалуйста)?
restIess: Сейчас уже убегаю, вечерком мб
blackmday12: ладно, спасибо
Похожие вопросы
Предмет: Русский язык, автор: blagevelizavely