Главная » 2017 » Сентябрь » 25 » Разбор задания по структурам
11:16
Разбор задания по структурам

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

Завуч школы №30 ре­ши­ла на­гра­дить двух учащихся, ко­то­рые лучше всех сдали информатику.

Программа долж­на вы­ве­сти на экран фа­ми­лии и имена этих учеников.

Если наи­боль­ший балл на­бра­ло боль­ше двух че­ло­век — вы­ве­сти ко­ли­че­ство таких учеников.

Если наи­боль­ший балл на­брал один человек, а сле­ду­ю­щий балл на­бра­ло не­сколь­ко че­ло­век — нужно вы­ве­сти толь­ко фа­ми­лию и имя лучшего.

Напишите эффективную, в том числе и по ис­поль­зу­е­мой памяти, программу(укажите ис­поль­зу­е­мую вер­сию языка программирования),которая долж­на вы­ве­сти на экран тре­бу­е­мую информацию. Известно, что ин­фор­ма­ти­ку сда­ва­ло боль­ше 5 уче­ни­ков школы №30.

На вход про­грам­ме сна­ча­ла по­да­ет­ся число учеников, сда­вав­ших экзамен. В каж­дой из сле­ду­ю­щих N строк на­хо­дит­ся ин­фор­ма­ция об уче­ни­ках в формате:

<Фамилия><Имя><Номер школы><Количество баллов>

<Фамилия> — строка, со­сто­я­щая не более чем из 30 сим­во­лов без пробелов,

<Имя> — строка, со­сто­я­щая не более чем из 20 символов.

<Номер школы> — число в диа­па­зо­не от 1 до 99

<Количество баллов> — число в диа­па­зо­не от 1 до 100.

Эти дан­ные за­пи­са­ны через пробел, то есть в каж­дой стро­ке ровно 3 пробела.

 

Решение

 

#include<iostream>

#include<string>

using namespace std;

struct sc {

                string sname;

                string name;

                int ns;

                int b;

};

void main() {

                int n, max = 0,k=0,t;

                cin >> n;

                sc *a = new sc[n];

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

                                cin >> a[i].sname >> a[i].name >> a[i].ns >> a[i].b;

                                if (a[i].ns == 30)

                                               if (a[i].b > max) {

                                                               max = a[i].b;

                                                               k = 1;

                                                               t = i;

                                               }

                                               else if (a[i].b == max)

                                                               k++;

                }

                if (k == 1)

                                cout << a[t].sname << a[t].name;

                else

                                cout << k;

}

 

Просмотров: 97 | Добавил: Надежда_Халтурина | Теги: стурктуры | Рейтинг: 0.0/0
Всего комментариев: 0
avatar