0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 12
1

Найти максимальное число среди повторяющихся элементов массива

28.03.2017, 22:15. Показов 2342. Ответов 4

Помогите решить задачку всем заранее спасибо !
Дан двумерный массив 6,6 нужно найти максимальное число среди повторяющихся элементов
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2017, 22:15
Ответы с готовыми решениями:

Массив: Вывести на экран минимальное значение среди положительных элементов массива и максимальное - среди отрицательных элементов
Дан целочисленный массив с неповторяющимися элементами, сформированный пользователем. Вывести на...

Задача из ЕГЭ: найти и вывести максимальное значение среди трехзначных элементов массива, делящихся на 4
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до...

Найти максимальное число среди модулей чисел
Организовать циклические процессы с использованием оператора цикла в сочетании с оператором...

Найти максимальное значение среди элементов под главной диагональю
Задан двумерный массив размером M на N. Найти максимальное значение среди элементов под главной...

4
1753 / 1345 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
29.03.2017, 00:56 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const n=6;
var a:array [1..n,1..n] of integer;
    max:integer; b:boolean;
    i,j,i1,j1:byte;
begin
  randomize; max:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=random(20)+1; write(a[i,j]:3,' ');
    end;
    writeln;
  end;
  for i:=1 to n do begin
    b:=false;
    for j:=1 to n do begin
      for i1:=1 to n do
        for j1:=1 to n do
          if (i<>i1) and (j<>j1) and (a[i,j]=a[i1,j1]) then b:=true;
      if b then if a[i,j]>max then max:=a[i,j];
    end;
  end;
  write('Максимальный среди повторяющихся: ',max);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7062 / 4191 / 2727
Регистрация: 22.11.2013
Сообщений: 12,006
Записей в блоге: 1
29.03.2017, 08:17 3
Hitoku,
квадратишненько.
Раз уж все-равно весь массив пробегаете, можно
Pascal
15
16
17
18
      k:=0;
      for i1:=1 to n do for j1:=1 to n do
        if a[i,j]=a[i1,j1] then Ink(k);
      if (k>1) and (max<a[i,j]) then max:=a[i,j];
Добавлено через 2 минуты
или в надежде на чудо:
Pascal
15
16
17
18
19
20
21
      k:=0;
      for i1:=1 to n do for j1:=1 to n do
        if a[i,j]=a[i1,j1] then begin
          Ink(k); if k>1 then goto Done; { единственный заслуживающий внимания повод использовать goto }
        end;
Done:
      if (k>1) and (max<a[i,j]) then max:=a[i,j];
Добавлено через 5 минут
или без goto:
Pascal
15
16
17
18
19
20
21
22
  i1:=0; k:=2;
  while (k>0) and (i1<n) do begin
    Inc(i1); j1:=0;
    while (k>0) and (j1<n) do begin
      Inc(j1); if a[i,j]=a[i1,j1] then Dec(k);
    end;
  end;
  if (k=0) and (max<a[i,j]) then max:=a[i,j];
Добавлено через 10 минут
Если для отсутствия повторов нужно отдельное сообщение:
Pascal
22
23
  if max>0 then WriteLn('Максимальный из повторяющихся ',max)
  else WriteLn('Повторяющихся нет');
0
1753 / 1345 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
29.03.2017, 09:39 4
bormant, вот так, наверное, поэффективней
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const n=6;
var a:array [1..n,1..n] of integer;
    max:integer; c:set of integer;
    i,j:byte;
begin
  randomize; max:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=random(20)+1; write(a[i,j]:3,' ');
      if not (a[i,j] in c) then include(c,a[i,j]) else
        if a[i,j]>max then max:=a[i,j];
    end;
    writeln;
  end;
  write('Максимальный среди повторяющихся: ',max);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7062 / 4191 / 2727
Регистрация: 22.11.2013
Сообщений: 12,006
Записей в блоге: 1
29.03.2017, 12:03 5
Немного кто даст сделать set of integer...

Добавлено через 3 минуты
Hitoku,
А в общем случае - сортировка и поиск первого повтора с "толстого" конца, сортировки-то есть эффективнее, чем О(n2).

Добавлено через 4 минуты
В FPC за аналог set of SmallInt сойдет packed array [SmallInt] of Boolean.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2017, 12:03
Помогаю со студенческими работами здесь

Найти максимальное значение среди элементов встречающихся два раза
Добрый день, помогите с задачей : нахождение максимального значения среди элементов встречающихся...

Найти сумму максимума среди чётных и минимума среди нечётных элементов массива
1. Дан одномерный массив. Найти сумму максимума среди чётных и минимума среди нечётных. 2. Дана...

Найти максимум среди элементов массива, вычесть из всех нечётных элементов массива единицу и поделить на два
Создайте массив А длины 10. Заполните его с клавиатуры целыми числами. Выведите его на экран....

Найти максимальное и минимальное число массива с помощью рекурсии
Дан массив , Найти максимальное и минимальное число с помощью рекурсии


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru