Есть ответ 👍

Выведите фамилии и имена учащихся в порядке убывания их среднего балла.

Входные данные

Заданы сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5.

Выходные данные

Необходимо вывести пары фамилия-имя по одной на строке, разделяя фамилию и имя одним пробелом. Выводить оценки не нужно. Если несколько учащихся имеют одинаковые средние баллы, то их нужно выводить в порядке, заданном во входных данных.

Sample Input:

3
Markov Valeriy 5 5 5
Sergey Petrov 1 1 1
Petrov Petr 3 3 3
Sample Output:

Markov Valeriy
Petrov Petr
Sergey Petrov

147
449
Посмотреть ответы 2

Ответы на вопрос:

revon
4,4(55 оценок)

#include lt;iostreamgt;

#include lt;cstringgt;

#include lt;vectorgt;

#include lt;algorithmgt;

struct StudentData

{

std::string name;

std::string surname;

int math;

int phys;

int comp_science;

};

bool

comp(const StudentData amp;a, const StudentData amp;b)

{

int tmp1 = a.math + a.phys + a.comp_science;

int tmp2 = b.math + b.phys + b.comp_science;

return tmp1 gt; tmp2 true : false;

}

int

main(void)

{

int n;

std::cin gt;gt; n;

std::vectorlt; StudentData gt; data(n);

for (int i = 0; i lt; n; i++) {

std::cin gt;gt; data[i].name gt;gt; data[i].surname;

std::cin gt;gt; data[i].math gt;gt; data[i].phys gt;gt; data[i].comp_science;

}

std::sort(data.begin(), data.end(), comp);

for (int i = 0; i lt; n; i++) {

std::cout lt;lt; data[i].name lt;lt; " " lt;lt; data[i].surname lt;lt; std::endl;

}

return 0;

}

Объяснение:

EvaMilka
4,6(33 оценок)

Ответ находится при обычной логики, тут даже не надо особых знаний по теории реляционных бд. при отношении "один ко многим" каждый из "многих" должен ссылаться на конкретный "один", или попросту, у каждого жильца должно быть свое место проживания. поэтому в таблице (а, жилец) нужно сделать поле, в котором будет указана ссылка (точнее, ключ записи) для таблицы (b, место проживания). ответ: 1)

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS