Вопрос № 177549: Ув.эксперты написал програмку: Найти записи о студентах, имеющих наиболее часто встречающуюся оценку по физике. Если имеется несколько оценок, которые встречаются наиболее часто, то тогда среди этих оценок надо выбрать наиболее высокую оценку. Най...
Вопрос № 177549:
Ув.эксперты написал програмку: Найти записи о студентах, имеющих наиболее часто встречающуюся оценку по физике. Если имеется несколько оценок, которые встречаются наиболее часто, то тогда среди этих оценок надо выбрать наиболее высокую оценку. Найденные записи необходимо переместить в начало массива и отсортировать по алфавиту (использовать алгоритм простой обменной сортировкой).
Помогите переместить найденные записи и отсортировать! Программу поиска я написал! Вот она:
type TstudentInfo=record Name:string; Physics,
Math:integer; end; var a,c:array [1..100] of TstudentInfo ; b:array [1..100] of integer; i,n,max,jmax,s2,s3,s4,s5,j,g:intege r; begin write ('Количество студентов= '); readln (n); for i:=1 to n do begin write ('имя: '); readln (a[i].name); write ('оценка по физике: '); readln (a[i].physics); write ('оценка по математике: '); readln (a[i].math); end; j:=1; S
2:=0; S3:=0; S4:=0; S5:=0; for i:=1 to n do begin if a[i].physics=2 then begin S2:=S2+1;b[j]:=S2; end; if a[i].physics=3 then begin S3:=S3+1;b[j+1]:=S3; end; if a[i].physics=4 then begin S4:=S4+1;b[j+2]:=S4; end; if a[i].physics=5 then begin S5:=S5+1;b[j+3]:=S5; end; end; max:=b[j];jmax:=1; for j:=1 to 4 do if b[j]>max then begin max:=b[j]; jmax:=j; end; for j:=1 to 4 do if max=b[j] then begin max:=b[j]; jmax:=j; end; for i:=1 to n do if a[i].physics=jmax+1 then
writeln (a[i].name); end.
Отвечает Andrew Kovalchuk, 8-й класс :
Здравствуйте, Sasha23. После небольшой модификации предложенного кода остановился на варианте использующем тот же принцип, что и в ответе к вопросу 177504
Приложение:
----- Временная неудача лучше временной удачи
Ответ отправил: Andrew Kovalchuk, 8-й класс
Ответ отправлен: 29.03.2010, 22:20
Номер ответа: 260456
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260456
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.