Сортировка записей Задача Формат входных данных:

advertisement
Сортировка записей
Задача
Отсортировать студентов по возрастанию
среднего балла.
Формат входных данных:
В первой строке – количество студентов - n.
Для каждого студента даны две строки: в
первой строке фамилия и имя, во второй
строке – группа и 5 оценок.
Формат выходных данных:
Вывести отсортированный список
студентов: фамилию, имя и средний балл
каждого студента на отдельной строке.
Решение
program sort;
type student=record
fio:string;
group:integer;
mark:array[1..5]of integer;
sr:real;
end;
var p:array[1..100]of student;
sum,i,n,j:integer;tmp:student;
begin
//ввод данных
readln(n);
for i:=1 to n do
begin
readln(p[i].fio);
read(p[i].group);
for j:=1 to 5 do
read(p[i].mark[j]);
readln;
end;
//подсчет среднего для каждого
//ученика
for i:=1 to n do
begin
sum:=0;
for j:=1 to 5 do
sum:=sum+p[i].mark[j];
p[i].sr:=sum/5;
end;
//сортировка методом пузырька
for i:=n-1 downto 1 do
for j:=1 to i do
if p[j].sr>p[j+1].sr then
begin
tmp:=p[j];
p[j]:=p[j+1];
p[j+1]:=tmp;
end;
//вывод данных
for i:=1 to n do
writeln(p[i].fio,' ',p[i].sr:0:2);
end.
Download