Witam serdecznie,
proszę o pomoc z programem. Wysypuje mi się w trakcie dodawania drugiej osoby. Poniżej polecenie oraz mój kod. Z góry dziękuję za pomoc i pozdrawiam.
Napisz program, który wczytuje liczbę n (<100) określającą ilość uczniów, a następnie n rekordów zawierających informacje o ich ocenach. Program powinien obliczyć średnią ocen każdego ucznia i wyświetlić posortowaną listę uczniów w postaci Imię Nazwisko Średnia począwszy od tego z najwyższą średnią.
Format danych ucznia:
Imię Nazwisko
Ilość ocen - nie więcej jak 10
oceny oddzielone spacjami
Przykład
Wejście:
3
Jan Kowalski
5
4 3 4 5 4
Adam Nowak
4
3 5 4 3
John Doe
6
5 4 5 5 3 5
Wyjście:
John Doe 4.5
Jan Kowalski 4.00
Adam Nowak 3.75
Napisz program tak, aby można było przekierować wejście z pliku (sprawdź działanie programu na powyższych danych)
program rekordy;
type uczen = record
imie:string[20];
nazwisko:string[30];
oceny:array[1..10] of real;
srednia:real;
end;
var uczniowie:array[1..100] of uczen;
i,j,n,ilosc:integer;
suma:real;
tmp:uczen;
BEGIN
readln(n);
for i:=1 to n do
begin
ilosc:=0;
suma:=0;
readln(uczniowie[i].imie, uczniowie[i].nazwisko);
readln(ilosc);
for j:=1 to ilosc do
begin
read(uczniowie[i].oceny[j]);
suma := suma + uczniowie[i].oceny[j];
end;
uczniowie[i].srednia := suma / ilosc;
end;
for i:=1 to n-1 do
begin
for j:=1 to n-i do
begin
if uczniowie[j].srednia < uczniowie[j+1].srednia then
begin
tmp := uczniowie[j];
uczniowie[j] := uczniowie[j+1];
uczniowie[j+1] := tmp;
end;
end;
end;
for i:=1 to n do
begin
writeln(uczniowie[i].imie,' ',uczniowie[i].nazwisko,' ',uczniowie[i].srednia:0:2);
end;
readln;
END.