Помощь - Поиск - Пользователи - Календарь
Полная версия: поиск наиболее часто встречающегося элемента матр.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-StRaNNiK-
Привет! Помогите, пожалуйста! Есть такая задача:
дан одномерный массив. Ну пускай из 30 элементов.

var
s: array [1..30] of string;


в программе пользователь вводит произвольно слова. но при этом некоторые повторяет. ну например вводил он, вводил, и навводил 30 значений. какое-то слово там встречается 3 раза, какое-то 8. так вот нужно вывести слово, которое встречается большего всего раз.
Надеюсь на вашу помощь.
Заранее спасибо!!
volvo
-StRaNNiK-,
сортируем массив по возрастанию/убыванию, и ищем максимальное количество подряд идущих одинаковых элементов...
-StRaNNiK-
Сортируем строки по возрастанию/убыванию? Такое можно делать?
Если можно, то как выполнить это:
"ищем максимальное количество подряд идущих одинаковых элементов"
volvo
Цитата
Такое можно делать?

blink.gif А почему нет? Вот тебе пример:
const
n = 10;
a: array[1 .. n] of string =
('_1', '_4', '_7', '_4', '_2', '_3', '_2', '_2', '_5', '_4');

var
i, j: integer;
max: integer;
T: string;

begin
for i := 1 to n do
for j := n downto i+1 do
if a[j - 1] > a[j] then begin { < }
T := a[j - 1]; a[j - 1] := a[j]; a[j] := T
end;

for i := 1 to n do
write(a[i]:4);
writeln;

i := 2;
max := 0;
while i <= n do begin

j := 1;
while (a[i] = a[i - 1]) and (i <= n) do begin
inc(j); inc(i);
end;

if j > max then begin
max := j;
T := a[i - 1]
end;
inc(i)

end;
writeln('s: ', T, ' (', max, ') times...');

end.
-StRaNNiK-
Не могу понять, в чем проблема. При запуске пишет ошибку: Left side cannot be assigned to
и показывает на вот эти 2 строки:
a[j - 1] := a[j]; a[j] := T
курсор ставит после =
Guest
исправил путем переноса массива из констант в переменные

Дельфи - консольное приложение? wink.gif Там да, мой код надо немного подправить... Просто мы (если не указано явно) считаем, что автор вопроса пользуется TP7...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.