Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 118

В двух матрица: А (n строк , m столбцов) и B (r строк. s столбцов) поменять местами наибольшие элементы

03.04.2021, 22:59. Показов 1263. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В двух матрица: А (n строк , m столбцов) и B (r строк. s столбцов) поменять местами наибольшие элементы . Для поиска индексов наибольшего элемента в матрице использовать подпрограмму
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2021, 22:59
Ответы с готовыми решениями:

В двух матрица: А (n строк , m столбцов) и B (r строк. s столбцов) поменять местами наибольшие элементы . Для поиска ин
В двух матрица: А (n строк , m столбцов) и B (r строк. s столбцов) поменять местами наибольшие элементы . Для поиска индексов наибольшего...

Поменять местами первые элементы столбцов матрицы на минимальные элементы строк
Подскажите, что не так? Я нашёл минимальные элементы в строках матрицы и пытаюсь поменять их с первыми элементами столбцов матрицы, но...

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

4
0 / 0 / 0
Регистрация: 18.12.2020
Сообщений: 30
04.04.2021, 04:12
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
73
74
75
76
77
78
79
80
#include <iostream>
 
using namespace std;
 
int main()
{   srand(time(0));
    int n, m, r, s, i, j, maxA, maxB, t1, t2, p1, p2;
    cout << "n строк: "; cin >> n; cout << "m столбцов: "; cin >> m; cout << "r строк: "; cin >> r; cout << "s столбцов: "; cin >> s; cout << endl;
    int** A = new int* [n];//объявление динамической матрицы A
    for (i=0; i<n; i++)
    A [i]= new int [m];
    int** B = new int* [r];//объявление динамической матрицы B
    for (i=0; i<r; i++)
    B [i]= new int [s];
    
    /*Пусть*/ maxA = A[0][0]; maxB = B[0][0];
    
    cout << "Матрица A = " << endl;
 
    for (i=0; i<n; i++)
    { 
        for (j=0; j<m; j++)
        {
            A[i][j]=rand()%100;//заполнение матрицы A случайными числами от 0 включительно по 99
            cout << A[i][j] << " ";//вывод матрицы A
            if (A[i][j]>maxA) { maxA = A[i][j];//определение наибольшего элемента в матрице A
            p1 = i; p2 = j; }//запись в переменные p1 и p2 индексов наибольшего элемента матрицы A 
        }
        cout << endl;
    }
    cout << endl << "Матрица B = " << endl;
    
    for (i=0; i<r; i++)
    { 
        for (j=0; j<s; j++)
        {
            B[i][j]=rand()%100;//заполнение матрицы B случайными числами от 0 включительно по 99
            cout << B[i][j] << " ";////вывод матрицы B
            if (B[i][j]>maxB) { maxB = B[i][j];//определение наибольшего элемента в матрице B
            t1 = i; t2 = j; }//запись в переменные t1 и t2 индексов наибольшего элемента матрицы B 
        }
        cout << endl;
    }
    cout << endl << "Наибольший элемент матрицы A = " << maxA << endl << "Наибольший элемент матрицы B = " << maxB << endl << endl;
    
    int temp = 0;
    temp = A[p1][p2];//перестановка наибольших элементов двух матриц
    A[p1][p2] = B[t1][t2];
    B[t1][t2] = temp;
 
    cout << "Изменённая матрица A = " << endl;
    
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
            cout << endl << "Изменённая матрица B = " << endl;
            
         for (i=0; i<r; i++)
    {
        for (j=0; j<s; j++)
        {   
        cout << B[i][j] << " ";
        }
        cout << endl;
    }
    
    
    for (i=0; i<n; i++)//удаление динамических двумерных массивов
    delete []A[i];
    delete []A;
    for (i=0; i<r; i++)
    delete []B[i];
    delete []B;
 
    return 0; }
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
04.04.2021, 10:13
sly,
Цитата Сообщение от Камиллааа Посмотреть сообщение
Для поиска индексов наибольшего элемента в матрице использовать подпрограмму
1
0 / 0 / 0
Регистрация: 18.12.2020
Сообщений: 30
04.04.2021, 19:41
Камиллааа, ниже привожу исправление моего предыдущего ответного сообщения.
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
 
using namespace std;
 
int maxi(int **arr, int rows, int cols)//подпрограмма (функция) поиска индекса i наибольшего элемента матрицы
{ int i, j, p1, /*пусть */ max = arr[0][0];
for (i=0; i<rows; i++)
    { 
        for (j=0; j<cols; j++)
        {
if (arr[i][j]>max) { max = arr[i][j];//определение наибольшего элемента в матрице
            p1 = i; }//запись в переменную p2 индекса i наибольшего элемента матрицы 
        }
    }
    return p1; }//возврат переменной p1
    
int maxj(int **a, int r, int c)//подпрограмма (функция) поиска индекса j наибольшего элемента матрицы
{ int i, j, p2, /*пусть */ max = a[0][0];
for (i=0; i<r; i++)
    { 
        for (j=0; j<c; j++)
        {
if (a[i][j]>max) { max = a[i][j];//определение наибольшего элемента в матрице
            p2 = j; }//запись в переменную p2 индекса j наибольшего элемента матрицы
        }
    }
    return p2; }//возврат переменной p2
 
 
int main()
{   srand(time(0));
    int n, m, r, s, i, j;
    cout << "n строк: "; cin >> n; cout << "m столбцов: "; cin >> m; cout << "r строк: "; cin >> r; cout << "s столбцов: "; cin >> s; cout << endl;
    int** A = new int* [n];//объявление динамической матрицы A
    for (i=0; i<n; i++)
    A [i]= new int [m];
    int** B = new int* [r];//объявление динамической матрицы B
    for (i=0; i<r; i++)
    B [i]= new int [s];
    
 
    cout << "Матрица A = " << endl;
 
    for (i=0; i<n; i++)
    { 
        for (j=0; j<m; j++)
        {
            A[i][j]=rand()%100;//заполнение матрицы A случайными числами от 0 включительно по 99
            cout << A[i][j] << " ";//вывод матрицы A
            
        }
        cout << endl;
    }
    cout << endl << "Матрица B = " << endl;
    
    for (i=0; i<r; i++)
    { 
        for (j=0; j<s; j++)
        {
            B[i][j]=rand()%100;//заполнение матрицы B случайными числами от 0 включительно по 99
            cout << B[i][j] << " ";//вывод матрицы B
        
        }
        cout << endl;
    }
    
    
    int indexiA = maxi (A, n, m);//вызов подпрограммы (функции) поиска индекса i наибольшего элемента для матрицы A, запись её возвращаемого значения в переменную
    int indexjA = maxj (A, n, m);//вызов подпрограммы (функции) поиска индекса j наибольшего элемента для матрицы A, запись её возвращаемого значения в переменную
    
    int indexiB = maxi (B, r, s);//вызов подпрограммы (функции) поиска индекса i наибольшего элемента для матрицы B, запись её возвращаемого значения в переменную
    int indexjB = maxj (B, r, s);//вызов подпрограммы (функции) поиска индекса j наибольшего элемента для матрицы B, запись её возвращаемого значения в переменную
    
    cout << endl;
    
    
    int temp = 0;
    temp = A[indexiA][indexjA];//перестановка наибольших элементов двух матриц
    A[indexiA][indexjA] = B[indexiB][indexjB];
    B[indexiB][indexjB] = temp;
 
    cout << "Изменённая матрица A = " << endl;
    
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
            cout << endl << "Изменённая матрица B = " << endl;
            
         for (i=0; i<r; i++)
    {
        for (j=0; j<s; j++)
        {   
        cout << B[i][j] << " ";
        }
        cout << endl;
    }
    
    
    for (i=0; i<n; i++)//удаление динамических двумерных массивов
    delete []A[i];
    delete []A;
    for (i=0; i<r; i++)
    delete []B[i];
    delete []B;
 
    return 0; }
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.04.2021, 00:47
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
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void Random (int **x, int N, int M)
{
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
        x[i][j]=rand()%100;
} 
 
void IndicesMax (int **x, int N, int M, int &imax, int &jmax)
{ 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
        if (x[i][j]>x[imax][jmax]) {imax=i;jmax=j;}
}        
    
void Print (int **x, int N, int M)
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)       
        cout << setw(3) << x[i][j] << " ";        
    cout << "\n";
    }
} 
 
int main()
{   
    srand((int)time(0));
    int n, m, r, s, imax=0, jmax=0;
    cout << "Size A:\n";
    cout << "n="; cin >> n; 
    cout << "m="; cin >> m; 
    cout << "Size B:\n";
    cout << "r="; cin >> r; 
    cout << "s="; cin >> s;    
    
      int **A = new int*[n];
    for (int i = 0; i < n; i++)
      A[i] = new int[m];
    
      int **B = new int*[r];
    for (int i = 0; i < r; i++)
      B[i] = new int[s];
      
    Random(A,n,m);
    cout << "Matrix A:\n";
    Print(A,n,m);
    Random(B,r,s);
    cout << "Matrix B:\n";
    Print(B,r,s);
 
    IndicesMax(A,n,m,imax,jmax);
    int imaxA=imax; imax=0;
    int jmaxA=jmax; jmax=0;
    IndicesMax(B,r,s,imax,jmax);    
     
    if(A[imaxA][jmaxA]!=B[imax][jmax])
    {
        swap(A[imaxA][jmaxA],B[imax][jmax]);
    
        cout << "Modified matrix A:\n";
        Print(A,n,m);    
        cout << "Modified matrix B:\n";
        Print(B,r,s);
    }
    else cout << "maxA = maxB = " << A[imaxA][jmaxA] << "\n";
    
    for (int i = 0; i < n; i++)
    delete[]A[i];
    delete[]A;
    for (int i = 0; i < r; i++)
    delete[]B[i];
    delete[]B; 
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2021, 00:47
Помогаю со студенческими работами здесь

Найти наибольшие элементы и номера строк и столбцов, в которых они расположены, для матриц А(10,15) и В(15,12)
Найти наибольшие элементы и номера строк и столбцов, в которых они расположены, для матриц А(10,15) и В(15,12). Использовать...

Дана матрица m x n. Поменять местами элементы четных столбцов
Пожалуйста,помогите!:cry: Дана матрица m x n. Поменять местами элементы четных столбцов.

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

Дана матрица А из n строк и m столбцов. Вывести номера столбцов, произведение элементов которых меньше единицы
Помогите найти ошибку в коде. При отладке выдает номера всех столбов не зависимо от получаемого значения. Я только-только начал заниматься...

Поменять местами минимальные значения столбцов с максимальными элементами соответствующих строк
Создать двумерный динамический массив, и поменять местами минимальные значения столбцов с максимальными элементами соответствующих строк


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru