C/C++

Сформировать матрицу B(M, N) элементами которой являются случайные числа, равномерно распределенные в интервале (-5, 7

Сформировать матрицу B(M, N) элементами которой являются
случайные числа, равномерно распределенные в интервале (-5, 7). Переставляя
20
ее строки и столбцы, добиться того, чтобы наибольший элемент матрицы
оказался в правом нижнем углу.
c++
помогите с лабой плиз
с объяснением
(◔‿◔) А что тут объяснять? Просто берёшь и формируешь матрицу с рандомными значениями из указанного диапазона (у меня она вещественная !). Одновременно с формированием матрицы определяешь её максимальный элемент, запоминаешь его индексы, а матрицу печатаешь. Затем меняешь строку с максимальным элементом на последнюю, после чего меняешь столбец с максимальным элементом на последний, а трансформированную матрицу выводишь на экран. (•‿•)
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int i, j, k, l, m, mminus, n, nminus;
cout << "m n » ";
cin >> m >> n;
mminus = m - 1;
nminus = n - 1;
double B[m][n], a, max = -6;
srand(time(NULL));
cout << "\nMatrix:" << endl;
for (k = 0; k < m; k++)
{
for (l = 0; l < n; l++)
{
B[k][l] = 1.0 * rand() /
RAND_MAX * 12.0 - 5.0;
if (B[k][l] > max)
{
max = B[k][l];
i = k;
j = l;
}
cout << fixed <<
setprecision(4) << setw(8) << B[k][l];
}
cout << endl;
}
if (i != mminus)
for (l = 0; l < n; l++)
{
a = B[i][l];
B[i][l] = B[mminus][l];
B[mminus][l] = a;
}
if (j != nminus)
for (k = 0; k < m; k++)
{
a = B[k][j];
B[k][j] = B[k][nminus];
B[k][nminus] = a;
}

cout << "\nMax = " << max <<
"\n\nTransformed Matrix:" << endl;
for (k = 0; k < m; k++)
{
for (l = 0; l < n; l++)
cout << fixed <<
setprecision(4) << setw(8) << B[k][l];
cout << endl;
}
system("pause > nul");
}
Дмитрий Матхеев
Дмитрий Матхеев
29 440
Лучший ответ

Похожие вопросы