С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Aleshh
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 84
1

Найти два наибольших элемента матрицы

25.04.2017, 22:43. Просмотров 154. Ответов 8
Метки нет (Все метки)

Найти два наибольших элемента матрицы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2017, 22:43
Ответы с готовыми решениями:

Найдите два наибольших элемента матрицы с указанием номеров строк и столбцов, в которых они находятся
Дана матрица A порядка n. Найдите два наибольших элемента матрицы с указанием...

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

Найти количество строк матрицы, в которых лишь по два положительных элемента
Дано двумерный массив целых чисел. Найти количество строк, в которых есть лишь...

Найти два наименьших (или наибольших) из данных десяти элементов
Если на затруднит. Завтра зачёт, а препод поставил условие решать НЕ ЧЕРЕЗ...

Вывести два наибольших и два наименьших значения из линейного массива
Прошу вас, помогите написать код программы на Паскале, который бы выводил на...

8
Hitoku
Модератор
1705 / 1304 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
26.04.2017, 01:02 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
var
  a: array[1..100, 1..100] of integer;
  im1, jm1, im2, jm2, n, m, i, j: byte;
 
begin
  randomize;
  write('n,m = ');readln(n, m);
  im1 := 1;jm1 := 1;im2 := 1;jm2 := 1;
  for i := 1 to n do begin
    for j := 1 to m do begin
      a[i, j] := random(101);
      write(a[i, j]:4, ' ');
      if a[im1, jm1] < a[i, j] then begin
        im1 := i;jm1 := j;
      end;
      if (a[im2, jm2] < a[i, j]) and (a[i, j] <> a[im1, jm1]) then begin
        im2 := i;jm2 := j;
      end;
    end;
    writeln;
  end;
  writeln('Max1 = ', a[im1, jm1], '; Max2 = ', a[im2, jm2]);
end.
0
VladimirD
74 / 74 / 78
Регистрация: 30.12.2015
Сообщений: 226
26.04.2017, 05:56 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const n=4;m=6;
var a:array [1..n,1..m] of integer;
    i,j,max,max2,maxi,maxj,maxi2,maxj2:integer;
begin
  randomize;
  for i:=1 to n do begin
    for j:=1 to m do 
      begin 
        a[i,j]:=random(100)-50;
        write (a[i,j]:4);
      end;  
    writeln;
  end;
 
  max:=a[1,1];maxi:=1;maxj:=1;
  for i:=1 to n do
    for j:=1 to m do
      if a[i,j]>=max then begin
        max2:=max; maxi2:=maxi; maxj2:=maxj;
        max:=a[i,j];maxi:=i;maxj:=j;         
        end;
  writeln;
 
  writeln('max1[',maxi,',',maxj,']=',max,' max2=[',maxi2,',',maxj2,']=',max2);
end.
0
Hitoku
Модератор
1705 / 1304 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
26.04.2017, 12:23 4
VladimirD, первый же прогон
-38 -8 -6 -11 -24 17
-15 7 45 36 -44 -39
39 -26 15 -9 -24 0
12 -33 -36 -35 6 -44

max1[2,3]=45 max2=[1,6]=17
0
VladimirD
74 / 74 / 78
Регистрация: 30.12.2015
Сообщений: 226
26.04.2017, 12:57 5
Hitoku, вот только в два прогона

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const n=4;m=6;
var a:array [1..n,1..m] of integer;
    i,j,max,max2,maxi,maxj,maxi2,maxj2:integer;
begin
  randomize;
  for i:=1 to n do begin
    for j:=1 to m do 
      begin 
        a[i,j]:=random(100)-50;
        write (a[i,j]:4);
      end;  
    writeln;
  end;
 
  max:=a[1,1];maxi:=1;maxj:=1;
  max2:=a[1,1];maxi2:=1;maxj2:=1;
  
  for i:=1 to n do
    for j:=1 to m do 
      if a[i,j]>=max then 
        begin
         max:=a[i,j];maxi:=i;maxj:=j; 
        end; 
        
  for i:=1 to n do
    for j:=1 to m do 
      if (a[i,j]>=max2)and(i<>maxi)and(j<>maxj) then 
        begin
         max2:=a[i,j]; maxi2:=i; maxj2:=j; 
        end;        
        
  writeln;
 
  writeln('max1[',maxi,',',maxj,']=',max,' max2=[',maxi2,',',maxj2,']=',max2);
end.
0
Hitoku
Модератор
1705 / 1304 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
26.04.2017, 13:08 6
VladimirD, ну и зачем писать такой длинный код, если в моём можно сделать такой же вывод?
Pascal
1
writeln('Max1[',im1,',',jm1,'] = ', a[im1, jm1], '; Max2[',im2,',',jm2,'] = ', a[im2, jm2]);
0
VladimirD
74 / 74 / 78
Регистрация: 30.12.2015
Сообщений: 226
26.04.2017, 13:11 7
проверь свой код на равенство максимальных
0
Hitoku
Модератор
1705 / 1304 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
26.04.2017, 13:16 8
Чуть-чуть меняем 16-ю строку и проблема улетела
Pascal
16
if (a[im2, jm2] < a[i, j]) and (i <> im1) and (j <> jm1) then begin
0
VladimirD
74 / 74 / 78
Регистрация: 30.12.2015
Сообщений: 226
26.04.2017, 17:48 9
Hitoku, тоже проверяй

n,m = 5 6
44 1 79 30 17 55
9 75 30 85 70 1
95 11 45 94 4 32
15 32 61 75 100 93
54 14 11 27 77 89
Max1 = 100; Max2 = 89

Добавлено через 20 минут
Hitoku, переделанная моя и немного от твоего кода
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const n=4;m=6;
var a:array [1..n,1..m] of integer;
    i,j,maxi,maxj,maxi2,maxj2:integer;
begin
  randomize;
  maxi:=1;maxj:=1;
  maxi2:=1;maxj2:=1;   
  for i:=1 to n do begin
    for j:=1 to m do 
      begin 
        a[i,j]:=random(10);
        write (a[i,j]:4);
        if a[i,j]>=a[maxi,maxj] then 
          begin
            maxi2:=maxi; maxj2:=maxj;
            maxi:=i;maxj:=j; 
          end else
        if (a[i,j]>=a[maxi2,maxj2]) then 
          begin
            maxi2:=i; maxj2:=j; 
          end             
      end;  
    writeln;
  end;
  writeln;
  writeln('max1[',maxi,',',maxj,']=',a[maxi,maxj],' max2=[',maxi2,',',maxj2,']=',a[maxi2,maxj2]);
end.
0
26.04.2017, 17:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2017, 17:48

Найти сумму наибольших значений элементов строк матрицы
Помогите пожалуйста составить программу. Условие: дан двумерный целочисленный...

Найти произведение первых трёх наибольших элементов матрицы
помогите пажалуйста с решением такой вот задачки: Найти произведение первых...

Найти номера наибольших элементов каждой строки матрицы
Массивы.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru