3 / 3 / 2
Регистрация: 22.01.2010
Сообщений: 89
1

Найти максимальный элемент матрицы и заменить его нулем

09.04.2010, 20:22. Показов 1557. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан двумерный массив целых чисел из 4 столбцов и 3 строк. Найти максимальный элемент в массиве и заменить его нулем.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2010, 20:22
Ответы с готовыми решениями:

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

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

Заменить максимальный элемент каждой строки матрицы нулем
Дан двумерный массив размером n*m, заполненный случайным образом. 1. Заменить максимальный...

Заменить максимальный элемент каждого столбца матрицы нулем
Дан двумерный массив размером n*m, заполненный случайным образом. 1. Заменить максимальный...

8
29 / 28 / 18
Регистрация: 06.04.2010
Сообщений: 68
09.04.2010, 20:34 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
program laba;
uses crt;
const n=3; m=4;
var
a:array[1..n,1..m] of integer;
i,j,max:integer;
 
begin
clrscr;
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln;
end;
 
max:=0;
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j]>max then max:=a[i,j];
end;
end;
 
writeln;
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j]=max then a[i,j]:=0;
write(a[i,j]:3);
end;
writeln;
end;
 
readln;
end.
1
32 / 20 / 9
Регистрация: 05.03.2010
Сообщений: 51
09.04.2010, 22:31 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
program laba;
uses 
crt;
const 
n=3; 
m=4;
type 
MyArray2D = array [1..n, 1..m] of integer;
 
procedure inputArray2D(var a : MyArray2D);
var
   i , j  : integer; 
begin
   for i := 1 to n do
      for j := 1 to m do
         read(a[i, j]);      {пофиг, что не рандомно, зато вомзожность аналитической проверки алгоритма есть}
end;
 
procedure outputArray2D(const a : MyArray);
var
  i, j : integer;
begin
   for j := 1 to m do
   begin
      for i := 1 to n do
         write(a[i, j]);
         writeln;
    end;
 
function findMax(const a : MyArray);
var
  i, j : integer;
  imax, jmax : integer;
begin
   imax := 1;
   jmax := 1;
   for i := 1 to n do
      for j := 1 to m do
          if (a[i, j] > a[imax, jmax]) then
          begin
             imax := i;
             jmax := j;
          end;
    finMax := a[imax, jmax];
end;
 
var 
   a   : MyArray2D;
   max : integer;
begin
   inputArray(a);
   outputArray(a);
   max := findMax(a);
   for i := 1 to n do
      for j := 1 to m do
         if (a[i, j] = max) then
            a[i, j] := 0;
   outputArray(a);
   readkey;
end;
Добавлено через 14 минут
Пара замечаний по предыдущей программе:
1. Друг, согласись, что красивее, когда программа разбита на процедуры и функици.
2. Ты присваиваешь, max элементу в начале значение 0, а если в массиве одни отрицательные элементы, и нуля там в помине не было. У тебя получитсья, что максимальный элементов массива отрицательных чисел 0=)
3. Меня смущает readln в конце программы, думаю пользователю не будет прикольно вводить какие знаки в пустую, легче поставить readkey, чтобы по нажатию клавиши происходил выход из программы.
4. Глобальные переменные - это ЗЛО!!!
5. Повторяющиеся строки - это ЗЛО!!!

было бы хорошо, если в будущем программисты не будут допускать таких глупых ошибок=))
1
3 / 3 / 2
Регистрация: 22.01.2010
Сообщений: 89
09.04.2010, 22:31  [ТС] 4
А чего вы подсовываете программу, которая не работает?
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
09.04.2010, 22:34 5
Цитата Сообщение от НеПродюссер Посмотреть сообщение
не будет прикольно вводить какие знаки в пустую,
А ничего вводить и не нужно, просто нажать Enter. А для readkey обязательно подключать модуль Crt, который не у всех исправно работает, да и не всегда он нужен для нажатия одной клавиши.
0
3 / 3 / 2
Регистрация: 22.01.2010
Сообщений: 89
09.04.2010, 22:39  [ТС] 6
Puporev, а Вы будете завтра на сайте? Просто когда Вы мне написали программу сегодня утром по переводу чисел из 2чной в 10чную систему, Вы использовали строковые переменные, а можно использовать просто числа? Когда например вводишь, это как бы подразумевается что число в 2 чной системе, а потом идёт перевод в 10-чную???
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
09.04.2010, 22:41 7
Максим_Лост, А Вы умеете вводить числа систем счисления не равных 10 без использования строк?

Добавлено через 23 секунды
Интересно, какого типа они у Вас будут?
0
29 / 28 / 18
Регистрация: 06.04.2010
Сообщений: 68
09.04.2010, 22:42 8
Цитата Сообщение от НеПродюссер Посмотреть сообщение
1. Друг, согласись, что красивее, когда программа разбита на процедуры и функици.
2. Ты присваиваешь, max элементу в начале значение 0, а если в массиве одни отрицательные элементы, и нуля там в помине не было. У тебя получитсья, что максимальный элементов массива отрицательных чисел 0=)
1)Возможно, но не требовалось сделать через процедуры или функции.
2)Согласен, косяк, просто отталкивался от random(10)
0
32 / 20 / 9
Регистрация: 05.03.2010
Сообщений: 51
09.04.2010, 23:00 9
эм..ну все-таки в процедурах цивильнее=)
я прогу не проверял, там возможно мелкий косяк, из-за которого все и не работает...но алгоритм именно такой=)

function findMax(const a : MyArray) : integer; - первый уже обнаружил=D
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2010, 23:00
Помогаю со студенческими работами здесь

Найти максимальный элемент матрицы и заменить его на 0
Дана матрица С найти максимальный эл.и заменить его на 0(ноль)

Найти максимальный элемент массива и заменить значения до максимального нулем, после максимального единицей
Ребят,помогите. Дан массив из 10 чисел,необходимо:ввести 10 значений массива,найти максимальный,и...

В массиве заменить максимальный элемент нулем
1.В массиве { x1, x2 ,..., xn} заменить максимальный элемент нулем.

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


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

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

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