Изменить с клавиатуры любой элемент двумерного массива
Всем здравствуйте. Есть в файле матрица. Я загрузил файл и сделал почти все операции над массивом. Вот только не пойку, как изменять элементы в матрице (пользователь вводит, какой элемент изменить и на какой изменить) можно ли это вообще сделать. Подскажите, пожалуйста.
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;
class Matrix
{
private:
int size;
int** matrix;
int determinant;
int maximum;
int minimum;
int sumElementsMainDiagonal;
int element;
string location = "matrix.txt";
fstream file;
public:
Matrix()
{
size = 3;
matrix = new int* [size];
for (int i = 0; i < size; i++)
matrix[i] = new int[size];
}
void openMatrix()
{
file.open(location);
if (file.is_open())
{
cout << "Файл відкрився" << endl;
}
else
{
cout << "Файл не відкрився" << endl;
}
}
void matrixToArray()
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
file >> matrix[i][j];
}
}
}
void printArray()
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
double findDeterminant()
{
int p;
int t;
p = 0;
for (int i = 0; i < size - 1; i++)
{
t = 1;
while (matrix[i][i] == 0)
{
for (int j = 0; j < size; j++)
{
matrix[i][j] = determinant;
matrix[i][j] = matrix[i + t][j];
matrix[i + t][j] = determinant;
}
p++;
t++;
}
for (int k = i + 1; k < size; k++)
{
determinant = matrix[k][i] / matrix[i][i];
for (int j = 0; j < size; j++)
matrix[k][j] -= matrix[i][j] * determinant;
}
}
determinant = pow(-1, p);
for (int i = 0; i < size; i++)
determinant *= matrix[i][i];
return determinant;
}
int findMaximum()
{
maximum = matrix[0][0];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (matrix[i][j] > maximum)
{
maximum = matrix[i][j];
}
}
}
return maximum;
}
int findMinimum()
{
minimum = matrix[0][0];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (matrix[i][j] < minimum)
{
minimum = matrix[i][j];
}
}
}
return minimum;
}
int findSumElementsMainDiagonal()
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (i == j)
{
sumElementsMainDiagonal += matrix[i][j];
}
}
}
return sumElementsMainDiagonal;
}
void findElement()
{
cout << "Укажіть елемент, який треба вивести: ";
cin >> element;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (element == matrix[i][j])
{
cout << "Заданий елемент = " << element << endl;
}
}
}
}
int getSize()
{
return size;
}
~Matrix()
{
file.close();
delete[] matrix;
}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Matrix matrix;
matrix.openMatrix();
cout << "Кількысть рядків = " << matrix.getSize() << endl;
cout << "Кількысть стовбців = " << matrix.getSize() << endl;
matrix.matrixToArray();
matrix.printArray();
cout << "Максимальний елемент = " << matrix.findMaximum() << endl;
cout << "Мінімальний елемент = " <<matrix.findMinimum() << endl;
cout << "Сума елементів на головній діагоналі = " << matrix.findSumElementsMainDiagonal() << endl;
cout << "Визначник матриці = " << matrix.findDeterminant() << endl;
matrix.findElement();
return 0;
system("pause");
}