#include <iostream>
#include <math.h>
const int m_SizeMatrix = 5;
const int m_Z = 5;
int GetIndex(int row, int col, int rows = m_SizeMatrix)
{
return col*rows + row;
}
int main()
{
int matrix[m_SizeMatrix*m_SizeMatrix];
for (int index=0; index<m_SizeMatrix*m_SizeMatrix; ++index)
matrix[index] =round(fabs(sin(index)*10000)) + 10000;
std::cout << "Matrix:\n";
for (int row=0; row<m_SizeMatrix; ++row)
{
for (int col=0; col<m_SizeMatrix; ++col)
std::cout << matrix[GetIndex(row, col)] << " ";
std::cout << "\n";
}
int min = matrix[m_SizeMatrix]; // Берем первый элемент выше диоганали
int max = matrix[1]; // Берем первый элемент ниже диоганали
//Найти минимальный элемент, лежащий выше главной диагонали, и максимальный элемент, лежащий ниже главной диагонали.
for (int col=0; col<m_SizeMatrix; ++col)
for (int row=0; row<m_SizeMatrix; ++row)
{
if (row < col && min > matrix[GetIndex(row, col)])
min = matrix[GetIndex(row, col)];
if (row > col && max > matrix[GetIndex(row, col)])
max = matrix[GetIndex(row, col)];
}
std::cout << "1. min:"<<min<<"\n";
std::cout << "1. max:"<<max<<"\n\n";
//Меняя местами столбцы матрицы, отсортировать по возрастанию ее первую строку.
for (int col=0; col<m_SizeMatrix; ++col)
{
int mincol = col;
for (int col2=col+1; col2<m_SizeMatrix; ++col2)
if (matrix[GetIndex(0, col2)]<matrix[GetIndex(0, mincol)])
mincol = col2;
if (mincol != col)
for (int row=0; row<m_SizeMatrix; ++row)
{
int mem = matrix[GetIndex(row, col)];
matrix[GetIndex(row, col)] = matrix[GetIndex(row, mincol)];
matrix[GetIndex(row, mincol)] = mem;
}
}
std::cout << "2. Matrix:\n";
for (int row=0; row<m_SizeMatrix; ++row)
{
for (int col=0; col<m_SizeMatrix; ++col)
std::cout << matrix[GetIndex(row, col)] << " ";
std::cout << "\n";
}
//Добавить Z столбцов в конец матрицы.
int newMatrix[m_SizeMatrix*m_SizeMatrix + m_Z*m_SizeMatrix];
for (int index=0; index<(m_SizeMatrix + m_Z)*m_SizeMatrix; ++index)
{
if (index<m_SizeMatrix*m_SizeMatrix)
newMatrix[index] = matrix[index];
else
newMatrix[index] =round(fabs(sin(index)*10000)) + 10000;
}
std::cout << "3. Matrix:\n";
for (int row=0; row<m_SizeMatrix; ++row)
{
for (int col=0; col<m_SizeMatrix+m_Z; ++col)
std::cout << newMatrix[GetIndex(row, col)] << " ";
std::cout << "\n";
}
}