✎ Задать свой вопрос   *более 30 000 пользователей получили ответ на «Решим всё»

Задача 894 На вход программе подаются сведения о

УСЛОВИЕ:

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

<Фамилия> <Имя> <оценки>,

где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:

Иванов Петр 4 5 3

Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.

РЕШЕНИЕ:

const LIM = 100;
var Info: array[1..LIM] of record
name: string;
sum: integer;
end;
i, k, N, mark, min1, min2, min3: integer;
c: char;
begin
readln(N);
{ ввод исходных данных }
for i:=1 to N do begin
Info[i].name := '';
for k:=1 to 2 do
repeat
read(c);
Info[i].name := Info[i].name + c;
until c = ' ';
Info[i].sum := 0;
for k:=1 to 3 do begin
read(mark);
Info[i].sum := Info[i].sum + mark;
end;
readln;
end;
{ поиск трех минимальных }
min1 := 20; min2 := 20; min3 := 20;
for i:=1 to N do begin
if Info[i].sum <min1 then begin
min3 := min2; min2 := min1;
min1 := Info[i].sum;
end
else if Info[i].sum <min2 then begin
min3 := min2;
min2 := Info[i].sum;
end
else if Info[i].sum <min3 then
min3 := Info[i].sum;
end;
{ вывод результата }
for i:=1 to N do
if Info[i].sum <= min3 then
writeln(Info[i].name);
end.

Вопрос к решению?
Нашли ошибку?

Добавил slava191, просмотры: ☺ 3459 ⌚ 10.04.2014. информатика 10-11 класс

Решения пользователелей

Хочешь предложить свое решение? Войди и сделай это!
Увы, но свой вариант решения никто не написал... Будь первым!

Написать комментарий

Последнии решения
a. электромагнитное излучение [удалить]
✎ к задаче 32767
a. количества протонов [удалить]
✎ к задаче 32768
(прикреплено изображение) [удалить]
✎ к задаче 32754
(прикреплено изображение) [удалить]
✎ к задаче 32769
2.
Δ MNL подобен ΔМКN
по двум углам, угол М - общий
Из подобия
MN:MK=ML:MN
MN^2=MK*ML=(8+10)*8
x=MN=12
MN:MK=NL:NK
y=NL=12*21/18=14

7.
Δ RKO подобен Δ LМO
по двум углам
Из подобия
RK:LM=RO:LO
x=32
y=sqrt(32^2+24^2)=sqt(1600)=40

12.
Δ BDE подобен Δ BCA
по двум углам, угол B - общий
8:(12+x)=12:24; BC=24
192=144+12x
x=4
[удалить]
✎ к задаче 32769