Дана задача: Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной области матрицы и наименьшее из значений элементов, расположенных вне заштрихованной области матрицы. В общем, матрицу мы принимаем за декартовую систему координат, элементы массива тогда будут точками. Нужно проверить нахождение элементов массива ниже или выше прямых ( это можно проверить через уравнение прямых), и потом уже находить макс и мин числа. Подскажите, как написать программу. Написал, но работает некорректно. Что не так?
#include
using namespace std;
int main() { setlocale(LC_ALL, "RUS"); int n, m, i, j, min = 2147483647, max = -2147483647; cout << "Введите порядок матрицы" << endl; cin >> n; int *a = new int[n,n]; cout << "Введите элементы матрицы" << endl; for (i = 0; i < n; i++) for (j = 0; j < n; j++) cin >> a[i,j]; for (i = 0; i < n; i++) for (j = 0; j < n; j++) if (((i - j + n / 2) <= 0) && ((i - j + 3 * n / 2) >= 0) && ((i + j - n / 2) <= 0) && ((i + j + n / 2) >= 0)) { if (a[i, j] > max) max = a[i, j]; } else if (a[i, j] < min) min = a[i, j]; cout << "Максимальный элемент равен: " << max << endl << "Минимальный элемент равен" << min << endl; system("pause"); return 0; }
Дана действительная квадратная матрица порядка n. Найти наибольшее
из значений элементов, расположенных в заштрихованной области матрицы
и наименьшее из значений элементов, расположенных вне заштрихованной
области матрицы.
В общем, матрицу мы принимаем за декартовую систему координат, элементы массива тогда будут точками. Нужно проверить нахождение элементов массива ниже или выше прямых ( это можно проверить через уравнение прямых), и потом уже находить макс и мин числа. Подскажите, как написать программу.
Написал, но работает некорректно. Что не так?
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int n, m, i, j, min = 2147483647, max = -2147483647;
cout << "Введите порядок матрицы" << endl;
cin >> n;
int *a = new int[n,n];
cout << "Введите элементы матрицы" << endl;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
cin >> a[i,j];
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (((i - j + n / 2) <= 0) && ((i - j + 3 * n / 2) >= 0) && ((i + j - n / 2) <= 0) && ((i + j + n / 2) >= 0))
{
if (a[i, j] > max)
max = a[i, j];
}
else
if (a[i, j] < min)
min = a[i, j];
cout << "Максимальный элемент равен: " << max << endl << "Минимальный элемент равен" << min << endl;
system("pause");
return 0;
}