Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Матрицы

Автор: Гость_viv 21.08.2004 16:01

Условие задачи такое: в матрице (mxn) найти все элементы с наибольним значением и их индексы. Я понимаю, если бы в условии было сказано, что найти элемент и его индекс. А как это все элементы. Помогите пожалуйста с задачей. Объясните суть.

Автор: APAL 21.08.2004 16:34

Наверное условие не полное... Может больше какого то значения?
Или нужно просто вывести все элементы со своими индексами в порядке убывания?

Автор: virt 22.08.2004 1:48

APAL ,
скорее всего надо найти максимальный элемент ,и потом найти все места где этот максимальный стоит.

Автор: APAL 22.08.2004 13:17

Ждемс комментов от автора...
Так-то задача простая.

Автор: trminator 22.08.2004 16:11

Так ему вроде самому комментарии и нужны.

Пример: матрица 3*3
5 6 7
3 2 1
6 1 6

Найбольший элемент - 6 - встречается 3 раза. Нужно вывести три пары чисел:
1 2
3 1
3 3

Автор: Гость_viv 23.08.2004 11:42

Я правильно Вас поняла, что нужно вывести все места, где стоит наибольший элемент в матрице? В примере понятно, что наибльший элемент встерчается 3 раза. Но не понятно, откуда вывели три пары чисел. Поясните пожалуйста еще раз.

Автор: APAL 23.08.2004 13:21

Пары чисел - это индексы наибольших элементов.

:D Прочти еще раз условие и задание :D

Автор: BlackShadow 23.08.2004 14:55

Должно быть так:

Код

Const
 n=3;
 m=3;
Var
 a:Array[1..m,1..n] Of Integer;
 i,j:Integer;
 max:Integer;
Begin
 For i:=1 To n Do
   For j:=1 To m Do
   Begin
     Write('Enter item in cell (',i,',',j,')');
     ReadLn(a[i,j])
   End;
 Max:=a[1,1];
 For i:=1 To m Do
   For j:=1 To n Do
     If a[i,j]>max Then
       max:=a[i,j];
 WriteLn('Maximum item = ',max);
 WriteLn('Positions:');
 For i:=1 To m Do
   For j:=1 To n Do
     If a[i,j]=max Then
       WriteLn(i,',',j)
End.

Если ничего не попутал...