Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/106: Рейтинг темы: голосов - 106, средняя оценка - 4.91
 Аватар для Visary_Master
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296

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

03.05.2011, 14:15. Показов 21863. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите в решении вопроса.
Я делал. Но сейчас что-то не могу разобраться

Что мне исправить, чтобы мне выводило только правильно? Мне нужно посчитать максимальный элемент в каждой строке и вывести его и его индексы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int maxElement = 0;
  int maxi = 0; 
  int maxj = 0;
 
  maxElement = mass[0][0];
  
  for (int i=0; i<N; i++)
  {  
    for (int j=0; j<N; j++)
    {
      if (mass[i][j] >= maxElement)
      {  
        maxElement = mass[i][j];
        maxi = i;
        maxj = j;
        cout << maxElement << endl;
        cout << maxi << " " << maxj << endl;
      }
    }
  }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2011, 14:15
Ответы с готовыми решениями:

В каждой строке матрицы найти максимальный элемент, в каждом столбце найти минимальный элемент, и поменять их местами
пожалуйста помогите плз!!! дан массив А. В каждой строке найти максимальный элемент, в каждом столбце найти минимальный элемент....

Найти в каждой строке матрицы максимальный элемент
не получается вывести максимальный элемент. Помогите пожалуйста #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Найти в каждой строке матрицы максимальный элемент
Дано массив А . Нужно найти с каждой строки максимальный элемент , с каждого столбца минимальный элемент

14
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.05.2011, 14:25
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int maxElement = 0;
  int maxi = 0; 
  int maxj = 0;
 
  maxElement = mass[0][0];
  
  for (int i=0; i<N; i++)
  {  
    for (int j=0; j<N; j++)
    {
      if (mass[i][j] >= maxElement)
      {  
        maxElement = mass[i][j];
        maxi = i;
        maxj = j;
      }
    }
 cout << maxElement << endl;
 cout << maxi << " " << maxj << endl;
}
0
 Аватар для Visary_Master
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
03.05.2011, 14:36  [ТС]
Надо в каждой строке чтобы искал эл-т и запоминал его индексы. Простите что сразу не написал.

Добавлено через 1 минуту
Цитата Сообщение от mimicria Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int maxElement = 0;
  int maxi = 0; 
  int maxj = 0;
 
  maxElement = mass[0][0];
  
  for (int i=0; i<N; i++)
  {  
    for (int j=0; j<N; j++)
    {
      if (mass[i][j] >= maxElement)
      {  
        maxElement = mass[i][j];
        maxi = i;
        maxj = j;
      }
    }
 cout << maxElement << endl;
 cout << maxi << " " << maxj << endl;
}
Этот код ищет по всему массиву.
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.05.2011, 14:43
Цитата Сообщение от Visary_Master Посмотреть сообщение
Этот код ищет по всему массиву.
А Вам по половине надо?

Как вариант: под строкой вы какой индекс массива имеете ввиду? Можно местами поменять:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int maxElement = 0;
  int maxi = 0; 
  int maxj = 0;
 
  maxElement = mass[0][0];
  
  for (int i=0; i<N; i++)
  {  
    for (int j=0; j<N; j++)
    {
      if (mass[j][i] >= maxElement)
      {  
        maxElement = mass[j][i];
        maxi = i;
        maxj = j;
      }
    }
 cout << maxElement << endl;
 cout << maxi << " " << maxj << endl;
}
0
 Аватар для Visary_Master
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
03.05.2011, 14:48  [ТС]
Цитата Сообщение от mimicria Посмотреть сообщение
А Вам по половине надо?

Как вариант: под строкой вы какой индекс массива имеете ввиду? Можно местами поменять:
Мы находим макс. элемент, и запоминаем его индексы i и j.

Есть двумерный массив. Ищем в каждой строке этого массива максимальный элемент, и выводим его индекс.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
03.05.2011, 14:54
Цитата Сообщение от Visary_Master Посмотреть сообщение
Надо в каждой строке чтобы искал эл-т и запоминал его индексы. Простите что сразу не написал.

Этот код ищет по всему массиву.
Нет. Вывод на экран - после каждой строки.
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.05.2011, 14:56
Цитата Сообщение от Visary_Master Посмотреть сообщение
Мы находим макс. элемент, и запоминаем его индексы i и j.

Есть двумерный массив. Ищем в каждой строке этого массива максимальный элемент, и выводим его индекс.
Ах, ну да. В каждой новой строке максимум надо обнулить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int maxElement = 0;
  int maxi = 0; 
  int maxj = 0;
 
  maxElement = mass[0][0];
  
  for (int i=0; i<N; i++)
  {  
    for (int j=0; j<N; j++)
    {
      if (mass[j][i] >= maxElement)
      {  
        maxElement = mass[j][i];
        maxi = i;
        maxj = j;
      }
    }
 cout << maxElement << endl;
 cout << maxi << " " << maxj << endl;
 maxElement = 0;
}
1
 Аватар для Visary_Master
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
03.05.2011, 15:29  [ТС]
Решено! Я нашел свою ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        int maxElement = 0;
    int maxi = 0; 
    int maxj = 0;
 
    maxElement = mass[0][0];
    
    for (int i=0; i<N; i++)
    {   
        for (int j=0; j<N; j++)
        {
            if (mass[i][j] >= maxElement)
            {   
                maxElement = mass[i][j];
                maxi = i;
                maxj = j;
            }
        }
        cout << maxElement << endl;
        cout << maxi << " " << maxj << endl;
        // maxElement = 0;  
    }
Все дело в строке, которая сейчас за комментирована. Если значение maxElement не обнулять то когда у нас найдется максимальный элемент всей матрицы, а мы еще не дошли до самой нижней строки, то у нас не будет искаться максимальный элемент строки матрицы дальше так как он уже найден.
Хм... глупая ошибка так то.
Вы опередили меня в написании.

Добавлено через 30 минут
Теперь такая задача:
В первой строке ищем максимальный элемент, а в каждой последующей ищешь максимальный элемент, не превышающий предпоследний.
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.05.2011, 15:31
C++
1
if ((MAS[i][j] > max) && (MAS[i][j] <= MAS[i][Column - 1])) max = MAS[i][j];
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.05.2011, 15:47
Теперь такая задача:
В первой строке ищем максимальный элемент, а в каждой последующей ищешь максимальный элемент, не превышающий предпоследний.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int maxElement = 0;
  int maxi = 0; 
  int maxj = 0;
  int prev_max=99999;
  maxElement = mass[0][0];
  
  for (int i=0; i<N; i++)
  {  
    for (int j=0; j<N; j++)
    {
      if ((mass[j][i] >= maxElement)&&(mass[j][i]<=prev_max))
      {  
        maxElement = mass[j][i];
        maxi = i;
        maxj = j;
      }
    }
 cout << maxElement << endl;
 cout << maxi << " " << maxj << endl;
 prev_max=maxElement;
 maxElement = 0;
}
1
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.05.2011, 15:52
mimicria, я ваш код вообще разобрать не смог.
C++
1
2
3
4
5
6
7
8
 for (int i = 0; i < Row; i++) {
    int max = MAS[i][0];
    for (int j = 1; j < Column; j++) {
        if ((!i) && (MAS[i][j] > max)) max = MAS[i][j];
        if ((i) && (MAS[i][j] > max) && (MAS[i][j] <= MAS[i][Column - 1])) max = MAS[i][j];
    }
    std::cout << i << " max: " << max;
}
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.05.2011, 15:58
Цитата Сообщение от neske Посмотреть сообщение
mimicria, я ваш код вообще разобрать не смог.
Это не страшно, вылечат всех

Добавлено через 3 минуты
а в каждой последующей ищешь максимальный элемент, не превышающий предпоследний найденный максимальный.
Я так задание понял
1
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.05.2011, 16:05
Да, это я задание прочитал невнимательно.
И на счет кода, так все-таки лучше не делать:
C++
1
int prev_max=99999;
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.05.2011, 16:08
Цитата Сообщение от neske Посмотреть сообщение
И на счет кода, так все-таки лучше не делать:
C++
1
int prev_max=99999;
За это мне стыдно, но думать как обойти не хотелось
0
 Аватар для Visary_Master
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
03.05.2011, 21:33  [ТС]
Нужно решить такую задачу. Немного я не правильно разъяснил. Потому что уже долго сижу и голова не варит. Я решаю такую задачу:
Задан двумерный массив N x N. Разрешается произвольно переставлять элементы внутри любого столбца. Про-верить, можно ли выполнив конечное количество перестановок в столбцах, расположить на побочной диагональ элементы так, чтобы он возрастали.

Я думаю что на правильном пути, надо еще реализовать перестановку элементов в столбце. И алгоритм будет примерно такой:
искать надо будет по столбцам...тогда... и еще надо... я запутался.

Вот весь код программы.
C++
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
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <ctime>
using namespace std;
 
const int N = 3;
 
int findMaxElement(int mass[N][N], int);
int main() 
{       
    int mass[N][N];
    srand(time(NULL));
    for (int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            mass[i][j] = rand() % 100;
        }
    }
    for (int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            cout << mass[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    
    int maxElement = 0;
    int maxi = 0; 
    int maxj = 0;
    int prev_max=99999;
 
    maxElement = mass[0][0];
    
    for (int i=0; i<N; i++)
    {   
        for (int j=0; j<N; j++)
        {
            if ((mass[j][i] >= maxElement) && (mass[j][i] <= prev_max))
            {   
                maxElement = mass[i][j];
                maxi = i;
                maxj = j;
            }
        }
        // для проверки
        cout << maxElement << endl;
        cout << maxi << " " << maxj << endl;
        cout << maxElement << endl;
 
        int temp = mass[maxi][maxj];
        mass[maxi][maxj] = mass[i][N - 1 - i];
        mass[i][N - 1 - i] = temp;
 
        prev_max=maxElement;
        //cout << prev_max; // для проверки
        maxElement = 0;
        
    }
    cout << endl;
    for (int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            cout << mass[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от neske Посмотреть сообщение
mimicria, я ваш код вообще разобрать не смог.
C++
1
2
3
4
5
6
7
8
 for (int i = 0; i < Row; i++) {
    int max = MAS[i][0];
    for (int j = 1; j < Column; j++) {
        if ((!i) && (MAS[i][j] > max)) max = MAS[i][j];
        if ((i) && (MAS[i][j] > max) && (MAS[i][j] <= MAS[i][Column - 1])) max = MAS[i][j];
    }
    std::cout << i << " max: " << max;
}
Мой код максимально прост.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2011, 21:33
Помогаю со студенческими работами здесь

Найти максимальный элемент в каждой строке матрицы
написать функцию

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

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

Найти максимальный элемент в каждой строке матрицы
Given a number N and M and array with N x M size. Find maximum number from each row? example: N=4 and M=2. Input: The numbers M and N...

Найти максимальный элемент в заданной строке матрицы
задана матрица. написать функцию, в которую передаешь номер строки, а она ищет в этой строке максимальный элемент


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru