• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Конкурс на грант

  • Автор темы Refrator
  • Дата начала
R

Refrator

Нужно написать прогу ,которая суммирует количество баллов предметов школьника и определяет список школьников, которые станут обладателями государственных грантов.Сперва вводится количество школьников,которые участвуют в конкурсе,а потом количество грантов, потом список школьников(т.е список данных школьников).Порядок ввода данных школьника:
1 - номер школьника
2 - Имя
3 - Фамилия
4 - 1-ый предмет
5 - 2-ый предмет
6 - 3-ый предмет
7 - 4-ый предмет
8 - Статус школьника(если он обладатель красного аттестата введется "YES", иначе "NO" ).Если школьник является обладателем красного аттестата он автоматический получает грант даже если он уступает по количеству баллов остальным школьникам. Прога должна вывести список обладателей грантов сортируя по убыванию их баллы.Примечание: прога должна сортировать баллы обладателей красного аттестата как баллы обычных школьников.Вывод данных школьника должна быть таким образом:
номер школьника_имя_фамилия_сумма баллов. Вот примеры:
Ввод
3 2
5 Иван Иванович 25 25 25 25 NO
4 Сергей Лазерев 25 25 25 24 NO
6 Миша Краснов 25 25 25 23 YES
Вывод
5 Иван Иванович 100
6 Миша Краснов 98

10 5
1 Владилен Каскаров 12 23 4 14 NO
2 Саша Колдунов 6 6 19 3 NO
3 Тарас Кузьмин 11 7 3 5 NO
4 Филлип Ламм 15 19 8 4 NO
5 Роберт Сторожов 15 3 17 11 NO
6 Сидор Бонт 7 17 18 1 NO
7 Михайл Исламов 5 5 16 17 NO
8 Симон Толстой 15 17 24 18 YES
9 Гаврил Ким 24 12 23 23 NO
10 Никита Абмадиев 22 1 18 7 YES
Вывод
9 Гаврил Ким 82
8 Симон Толстой 74
1 Владилен Каскаров 53
10 Никита Абмадиев 48
5 Роберт Сторожов 46

У меня пока только домыслы.Кажется сперва надо пробежаться по списку, и определить есть ли в списке обл. красного аттестата, а если есть копировать их в отдельный массив.Потом сортировать(лучше использовать пузырьковый кажется ) остальных по убыванию и вывести первые указанное количество грантников конечно если нет обл. красного аттестата, а если нет не знаю как.........
 
D

DarkKnight

Идея действительно хорошая.... Вот тебе в помочь указания не большие

1 - номер школьника
2 - Имя
3 - Фамилия
4 - 1-ый предмет
5 - 2-ый предмет
6 - 3-ый предмет
7 - 4-ый предмет
8 - Статус школьника(если он обладатель красного аттестата введется "YES", иначе "NO" ).Если школьник является обладателем красного аттестата он автоматический получает грант даже если он уступает по количеству баллов остальным школьникам. Прога должна вывести список обладателей грантов сортируя по убыванию их баллы.Примечание: прога должна сортировать баллы обладателей красного аттестата как баллы обычных школьников.Вывод данных школьника должна быть таким образом:
номер школьника_имя_фамилия_сумма баллов.
Это все заводишь структурой, так будет удобнее... Причем последние (предметы) заводи массивом, ну для примера:
struct Schoolboy
{
int Numb;
char Name[16];
char Soname[32];
int Subject[4];
bool RedDipl;
}
Пробегать по списку второй раз не обязательно... Организовываешь ввод до статуса красного диплома, в цикле считаешь балы по предметам, если требуемое кол-во определено, ставишь красный диплом... Переходишь к заполнению сделующей записи...
Ну а дальше как и сказал, сортируешь (без разницы каким методом), выводишь...
Если будут вопросы, то как lazybiz уже сказал , обращайся, всегда поможем...


Добавлено: Идея действительно хорошая.... Вот тебе в помочь указания не большие

1 - номер школьника
2 - Имя
3 - Фамилия
4 - 1-ый предмет
5 - 2-ый предмет
6 - 3-ый предмет
7 - 4-ый предмет
8 - Статус школьника(если он обладатель красного аттестата введется "YES", иначе "NO" ).Если школьник является обладателем красного аттестата он автоматический получает грант даже если он уступает по количеству баллов остальным школьникам. Прога должна вывести список обладателей грантов сортируя по убыванию их баллы.Примечание: прога должна сортировать баллы обладателей красного аттестата как баллы обычных школьников.Вывод данных школьника должна быть таким образом:
номер школьника_имя_фамилия_сумма баллов.
Это все заводишь структурой, так будет удобнее... Причем последние (предметы) заводи массивом, ну для примера:
C++:
struct Schoolboy
{
int Numb;
char Name[16];
char Soname[32];
int Subject[4];
bool RedDipl;
}
Пробегать по списку второй раз не обязательно... Организовываешь ввод до статуса красного диплома, в цикле считаешь балы по предметам, если требуемое кол-во определено, ставишь красный диплом... Переходишь к заполнению сделующей записи...
Ну а дальше как и сказал, сортируешь (без разницы каким методом), выводишь...
Если будут вопросы, то как lazybiz , обращайся, всегда поможем...
 
R

Refrator

Оказывается здесь все настолько сложно, есть еще одно условие если школьники имеют одинаковые баллы, школьник который имеет наибольший балл по 4-му предмету стоит выше, а если и 4-ый предмет равен то по списку,и максимальное количество баллов по каждому предмету не должно быть больше 25-ти баллов,еще количество грантов должно быть равно или меньше от количество школьников
Организовываешь ввод до статуса красного диплома, в цикле считаешь балы по предметам, если требуемое кол-во определено, ставишь красный диплом...
DarkKnight125 ты не правильно понял задачу. Красный диплом указывается словом "Yes" при вводе , и здесь нет требуемое количество баллов, надо выбрать определенное количество грантников среди школьников, которые набрали наивысшие баллы.
 
D

DarkKnight

Ну так ты начал реализовывать уже???
Выложи код, хоть начальный... Будет не дороботки - исправим, будет что то не ясно - допишим..... Задача то не сложная совсем....
Просто хочется ваш код глянуть....
 
R

Refrator

)))))
 

Вложения

  • 24.jpg
    24.jpg
    14,7 КБ · Просмотры: 550
D

DarkKnight

Скрин - это конечно хорошо ;-))
Но где же сам код ;-))) Я по картинки востанавливать исходный код не умею ;-)))))
Вернее востановлю конечно, но он явно будет от твоего отличаться ;-)))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!