IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Поиск максимального элемента в массиве,нахождение "частого" числа,и кол-ва его повторений.
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Дан одномерный массив,надо найти его максимальный элемент(сделано),после чего найти элемент,который повторяется чаще всех остальных,и найти сколько раз он повторяется(с этим и пробелмы..)
Никак не могу реализовать алгоритм.я так понимаю там нужно 3 массива ,1 массив с числами.2ой массив это какое число повторилось,а 3ий сколько раз,потом их отсортировать..ВОт реализовать не могу никак=(


program test;
uses crt;
const
n=10;
type
mas2 = array [1..n] of integer;
mas = array [1..n] of integer;
var
i,max,p:integer;
a:mas;
c:integer;
begin
clrscr;
for i:=1 to n do
begin
write('A[',i,']=');read(a[i]);
end;
max:=a[1];
for i:=1 to n do
begin
if max<a[i] then
max:=a[i];
end;
p:=0;
for i:=1 to n do
begin
if a[i]=a[i+1] then
С[i]:=a[i];
p:=p+1;
end;
writeln(max);
writeln©;
writeln(p);
readkey;
end.

ну тут не правильно...помогите или подскажите как надо сделать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


  max:=a[1];
for i:=1 to n do
begin
if max>a[i] then
max:=a[i];
end;

А в условии другое!
Цитата
который повторяется чаще всех остальных
но не больше! ты хоть определись!

Добавлено через 2 мин.
А найти число повторений просто! Делаешь цикл и ставишь счетчик на повторение этого числа!

Добавлено через 2 мин.
max:=a[1];
for i:=1 to n do
begin
if max<a[i] then
max:=a[i];
end;
p:=0;
for i:=1 to n do
begin
if a[i]=max then inc(p);
end;

Если по second условию..

Сообщение отредактировано: Артемий -


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


секенду

Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Цитата
секенду

Это можно расшифровать как 2-й вариант? smile.gif

Добавлено через 3 мин.
Цитата
Никак не могу реализовать алгоритм.я так понимаю там нужно 3 массива ,1 массив с числами.2ой массив это какое число повторилось,а 3ий сколько раз,потом их отсортировать

Это ты сам додумал, или основное условие задачи?


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


да я ошибка,а не второй вариант.
Сам додумался.т.к ты не правильно понял условия(или я не ясно изложил.
Вобшем :
Находим максимальный элемент в массиве.
Находим число ,которое повторяется максимальное количевство раз и находи СКОЛЬКО раз оно повторилось.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Кирилл

Репутация: -  0  +


Цитата
надо найти его максимальный элемент(сделано),после чего найти элемент,который повторяется чаще всех остальных,и найти сколько раз он повторяется(с этим и пробелмы..)

Не много другое, вот задача: В массиве a[1 .. n] вывести число, повторяющееся максимальное число раз. Если таких чисел несколько, то вывести их все
А вот решение:
Код

program z5;
uses crt;
var
   n,i,j,m,kol,k,max,t,d,rab: integer;
   b: array [1..100] of integer;
   f: boolean;
   a: array [1..100] of integer;
   ch: char;
begin
clrscr;
   repeat
      repeat
         write ('‚ўҐ¤ЁвҐ а §¬ал ¬ ббЁў : n=');
         readln (n);
      until n in [1..100];
      for i:=1 to n do
         begin
            write ('a[',i,']=');
            readln (a[i]);
         end;
      for i:=1 to n-1 do
         if a[i]>a[i+1] then
            begin
               rab:=a[i];
               a[i]:=a[i+1];
               a[i+1]:=rab;
            end;
      for i:=1 to n-1 do
         begin
            kol:=0;
            for j:=i+1 to n do
                  if a[i]=a[j] then kol:=kol+1;
            b[i]:=kol;
         end;
      max:=b[1];
      for i:=2 to n do
         if b[i]>max then max:=b[i];
      for i:=1 to n do

         if b[i]=max then write(a[i], ',' );
      writeln;
      write ('‚л©вЁ (y/n)?');
      writeln;
      ch:=readkey;
   until upcase (ch)='Y';
end.

Осталось добавить счетчик! smile.gif

Сообщение отредактировано: Kirill_ -


--------------------
... И сказал Господь: " Да будет свет ! "
И откомпилировал исходники своя, и нажал F5,
и снизошел свет в мир сей ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Непонятно следущее :
     for i:=1 to n-1 do
begin
kol:=0;
for j:=i+1 to n do
if a[i]=a[j] then kol:=kol+1;
b[i]:=kol;
end; {тут ,как я понимаю,мы ишем одинаковые элементы,и записываем их кол-во в массив B,так?}
max:=b[1];
for i:=2 to n do
if b[i]>max then max:=b[i]; {здесь ,как я понимаю,мы ищем максимальное значение в массиве совпадений B,так?}
for i:=1 to n do

if b[i]=max then write(a[i], ',' ); {Вот это что?есле элемент в массиве совпадений i равен максимальному числу совпадений,тогда выдать на печать элемент массива a[i],но как он таким образом выдает элемент,повторившийся наибольшее кол-во раз??}
writeln;
write ('‚л©вЁ (y/n)?');
writeln;
ch:=readkey;
until upcase (ch)='Y';


Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 8:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name