


Проблема с кодом в C++
Прошу помочь с решением проблемы.
Есть задача:
"Ввести двумерный массив Аn*n, вывести его. Возвести в квадрат все строки расположенные между строкой содержащей максимум матрицы и строкой, содержащей минимум этой матрицы."
Ниже представлен код:
#include
using namespace std;
int main()
{
int n, m, i, j, min, max;
int arr[4][4];
min = max = arr[0][0];
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
cout << "Enter the numbers of massive: ";
cin >> arr[i][j];
}
}
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
cout << arr[i][j];
}
cout << "\n";
}
cout << "--------\n";
min = max = arr[0][0];
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
if (min > arr[i][j])
{
min = arr[i][j];
n = i;
}
if (max < arr[i][j])
{
max = arr[i][j];
m = i;
}
}
if (n == m)
{
cout << "Min and max in one line\n";
}
else
{
if (n < m)
{
for (i = n + 1; i < m; i++)
{
for (j = 0; j < 4; j++)
{
arr[i][j] = arr[i][j] * arr[i][j];
}
}
}
else
{
for (i = m + 1; i < n; i++)
{
for (j = 0; j < 4; j++)
{
arr[i][j] = arr[i][j] * arr[i][j];
}
}
}
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
cout << arr[i][j] << " ";
}
cout << "\n";
}
}
}
system("pause");
}
Но компилятор выдает "Run-Time Check Failure #3 - The variable 'n' is being used without being initialized." в строке с "if (n == m)".
Предположим, arr[0][0] и есть минимальное число. Внутри цикла переменной n ничего не будет присвоено. Какое значение n будет в этом случае?
Аналогично с максимумом и m.
min = max = arr[0][0];
n = m = 0;