Задачи на массивы в С++. Помогите!!!
1. В квадратной целой матрице заменить все нечётные элементы суммой элементов главной диагонали.
2.1. Задана числовая матрица В. Написать функцию для нахождения значения максимального элемента матрицы и его индексов.
2.2. Найти максимальный элемент матрицы А и вычесть его из элементов всех столбцов, кроме того, в котором он находится.
Впредь лучше задавайте конкретный вопрос, а не просите решить за Вас задачу.
Код не компилил, не проверял, но логически все будет выглядеть именно так.
Код:
#include <iostream>
void ShowMatrix (const int** matrix, int size)
{
for (int i =0; i < size; i++)
{
for (int j =0; j < size; j++)
{
std::cout << matrix[ i][j] << "\t";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
int main()
{
int matrixSize;
std::cout << "Введите размер матрицы: ";
std::cin >> matrixSize;
int** matrix = new int*[matrixSize];
for (int i =0; i < matrixSize; i++)
{
matrix = new int[matrixSize];
for (int j =0; j < matrixSize; j++)
{
std::cout << "Введите элемент [" << i+1 << "," << j+1 << "]" << std::endl;
std::cin >> matrix[ i][j];
}
}
std::cout << "Исходная матрица:" << std:: endl;
ShowMatrix(matrix, matrixSize);
==============1======================
int sumMainDiag = 0;
for (int i = 0; i < matrixSize; i++)
{
sumMainDiag += matrix[ i][ i];
}
for (int i =0; i < matrixSize; i++)
{
for (int j =0; j < matrixSize; j++)
{
if (matrix[ i][j] % 2 == 1)
matrix[ i][j] = sumMainDiag;
}
}
std::cout << "Матрица после задания 1:" << std:: endl;
ShowMatrix(matrix, matrixSize);
==============2.1====================
int maxElement = matrix[0][0];
int rowMaxElement;
int columnMaxElement;
for (int i =0; i < matrixSize; i++)
{
for (int j =0; j < matrixSize; j++)
{
if (matrix[ i][j] > maxElement)
{
maxElement = matrix[ i][j];
rowMaxElement = i;
columnMaxElement = j;
}
}
}
std::cout << "Максимальный элемент = " << maxElement << std::endl;
std::cout << "Номер строки = " << rowMaxElement + 1 << std::endl;
std::cout << "Номер столбца = " << columnMaxElement + 1 << std::endl;
==============2.2====================
for (int i =0; i < matrixSize; i++)
{
for (int j =0; j < matrixSize; j++)
{
if (j == columnMaxElement)
continue;
matrix[ i][j] -= maxElement;
}
}
std::cout << "Матрица после задания 2.2:" << std:: endl;
ShowMatrix(matrix, matrixSize);
for (int i =0; i < matrixSize; i++)
{
delete matrix[ i];
}
delete matrix;
}
void ShowMatrix (const int** matrix, int size)
{
for (int i =0; i < size; i++)
{
for (int j =0; j < size; j++)
{
std::cout << matrix[ i][j] << "\t";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
int main()
{
int matrixSize;
std::cout << "Введите размер матрицы: ";
std::cin >> matrixSize;
int** matrix = new int*[matrixSize];
for (int i =0; i < matrixSize; i++)
{
matrix = new int[matrixSize];
for (int j =0; j < matrixSize; j++)
{
std::cout << "Введите элемент [" << i+1 << "," << j+1 << "]" << std::endl;
std::cin >> matrix[ i][j];
}
}
std::cout << "Исходная матрица:" << std:: endl;
ShowMatrix(matrix, matrixSize);
==============1======================
int sumMainDiag = 0;
for (int i = 0; i < matrixSize; i++)
{
sumMainDiag += matrix[ i][ i];
}
for (int i =0; i < matrixSize; i++)
{
for (int j =0; j < matrixSize; j++)
{
if (matrix[ i][j] % 2 == 1)
matrix[ i][j] = sumMainDiag;
}
}
std::cout << "Матрица после задания 1:" << std:: endl;
ShowMatrix(matrix, matrixSize);
==============2.1====================
int maxElement = matrix[0][0];
int rowMaxElement;
int columnMaxElement;
for (int i =0; i < matrixSize; i++)
{
for (int j =0; j < matrixSize; j++)
{
if (matrix[ i][j] > maxElement)
{
maxElement = matrix[ i][j];
rowMaxElement = i;
columnMaxElement = j;
}
}
}
std::cout << "Максимальный элемент = " << maxElement << std::endl;
std::cout << "Номер строки = " << rowMaxElement + 1 << std::endl;
std::cout << "Номер столбца = " << columnMaxElement + 1 << std::endl;
==============2.2====================
for (int i =0; i < matrixSize; i++)
{
for (int j =0; j < matrixSize; j++)
{
if (j == columnMaxElement)
continue;
matrix[ i][j] -= maxElement;
}
}
std::cout << "Матрица после задания 2.2:" << std:: endl;
ShowMatrix(matrix, matrixSize);
for (int i =0; i < matrixSize; i++)
{
delete matrix[ i];
}
delete matrix;
}