Помогите найти ошибку
Имеются сведения об обеспеченности жильем N работников предприятия: фамилия работника, количество человек в семье, количество кв. метров жилой площади. Также известно количество K новых квартир, которые получает предприятие. Требуется отпечатать список K работников, претендующих на новое жилье, полагая, что у всех работников разное количество кв. метров на человека.
Не могу отсортировать min количество кв.метров на человека. Что-то с выводом.Спасибо! program sp; uses crt; const n=3; type spisok=record fio:string; kolchel:integer; kolkvmetrov:real; metrnachel:real; end; var i,j,K,num:integer; min:real; rabotnik:array[1..n] of spisok; begin clrscr; for i:=1 to n do with rabotnik[i] do begin writeln('vvedite svedenia o rabotnike'); writeln('vvedite fam, name, otch'); readln(fio); writeln('vvedite kolichestvo chel'); readln(kolchel); writeln('vvedite kolichestvo kvad.metrov'); readln(kolkvmetrov); metrnachel:=kolkvmetrov/kolchel; end; write('K:='); readln(K); writeln('spisok rabotnikov:'); for i:=1 to K do begin min:=rabotnik[i].metrnachel; for j:=1 to n do begin if rabotnik[j].metrnachel>=min then begin min:=rabotnik[j].metrnachel; num:=j; write(rabotnik[j].fio,' '); write('kolichestvo kvadrat. metrov na 1 cheloveka: '); writeln(min:5:1); end; num:=j; end; end; rabotnik[i].metrnachel:=1.7e38; readln; end. |
Не очень понял, зачем было новую тему открывать, если есть эта:
http://www.tehnari.ru/f41/t51636/ , ну да ладно. Здесь Вам надо просто упорядочить по возрастанию обеспеченностей методом "пузырька" массив записей и внести в список претендентов первые К. P.S. А вообще-то неплохо люди обеспечены, если у кого-то приходится сколько-то там квадратных мегапарсеков на человека. Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
program sp; uses crt; const n=3; type spisok=record fio:string; kolchel:integer; kolkvmetrov:real; metrnachel:real; end; var i,j,K,num:integer; min:real; rabotnik:array[1..n] of spisok; begin clrscr; for i:=1 to n do with rabotnik[i] do begin writeln('vvedite svedenia o rabotnike'); writeln('vvedite fam, name, otch'); readln(fio); writeln('vvedite kolichestvo chel'); readln(kolchel); writeln('vvedite kolichestvo kvad.metrov'); readln(kolkvmetrov); metrnachel:=kolkvmetrov/kolchel; end; write('K:='); readln(K); writeln('spisok rabotnikov:'); for i:=1 to K-1 do begin min:=rabotnik[i].metrnachel; for j:=1 to n do if rabotnik[i].metrnachel>rabotnik[j].metrnachel then begin min:=rabotnik[i].metrnachel; rabotnik[i].metrnachel:=rabotnik[j].metrnachel; rabotnik[j].metrnachel:=min; end; write(rabotnik[i].fio,' '); write('kolichestvo kvadrat. metrov na 1 cheloveka: '); writeln(min:5:1); end; readln; end. |
Цитата:
Код:
program sp; |
Спасибо!!!
|
Часовой пояс GMT +4, время: 03:45. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.