Выведите фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах - Turbo Pascal
Формулировка задачи:
Проводились выборы президента школы. В первой строке подаётся целое число N-количество проголосовавших. Каждая из последующих N строк содержит фамилию фамилию, имя и отчество кандидата, за которого проголосовал тот или иной избиратель. Известно, что в выборах принимало участие не более 10 и не менее 3 кандидатов. Выведите фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах. Выводить следует в порядке от высшего к низшему. Напишите эффективную, в том числе и по используемой памяти, программу на языке Pascal.
Решение задачи: «Выведите фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах»
textual
Листинг программы
var n, i, j, p, k :longint; s :string; a :array[1 .. 10] of string; d :array[1 .. 10] of longint; begin readln(n); for i := 1 to n do begin readln(s); p := 0; for j := 1 to k do if (a[j] = s) then p := j; if (p = 0) then begin inc(k); a[k] := s; end else d[p] := d[p] + 1; end; for i := 1 to k do for j := 1 to k - 1 do if (d[j] < d[j + 1]) then begin s := a[j]; a[j] := a[j + 1]; a[j + 1] := s; p := d[j]; d[j] := d[j + 1]; d[j + 1] := p; end; for i := 1 to 3 do writeln(a[i]); end.
Объяснение кода листинга программы
Данный код написан на языке Turbo Pascal и выполняет следующие действия:
- Объявляет переменные: n, i, j, p, k, s, a и d.
- n - переменная для хранения числа кандидатов (в данном случае 3).
- i, j, p, k - переменные для цикла.
- s - переменная для хранения имени кандидата.
- a и d - двумерные массивы для хранения фамилий и числа голосов соответственно.
- Считывает имя кандидата и его число голосов.
- В цикле for i := 1 до n do считывается имя кандидата и его число голосов.
- Переменная p инициализируется значением 0.
- В цикле for j := 1 до k do происходит сравнение имени кандидата с именами в массиве a.
- Если имя кандидата совпадает с именем в массиве a, то значение переменной p увеличивается на 1.
- Если значение переменной p равно 0, то имя кандидата записывается в массив d.
- Если значение переменной p больше 0, то число голосов кандидата увеличивается на 1 и записывается в массив d.
- Выводит имена трех кандидатов с наибольшим числом голосов.
- В цикле for i := 1 до 3 do выводится имя кандидата из массива d. Таким образом, данный код позволяет вывести фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д