Работа с матрицами C++
В матрицах в рядках с отрицательным элементом на главной диагонали найти наибольший элемент рядка и минимум в ним
#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Enter line ";
cin >> n;
//
int matr[n][n];
cout << "Elemets of matrix:\n";
for (int i = 0; i < n; ++i, cout << endl)
for (int j = 0; j < n; ++j) {
cout << matr[i][j] << "\t";
}
cout << endl;
for (int i = 0; i < n; ++i) {
cout << matr[i][i] << "";
}
cout << endl;
for (int i = 0; i < n; ++i) {
cout << matr[i][n - 1 - i] << "";
}
// Find largest element in lines with negative element on main diagonal
for (int i = 0; i < n; ++i) {
if (matr[i][i] < 0) int max[n];
system("pause");
return 0;
}
Ответы (1 шт):
Автор решения: MX32
→ Ссылка
1 строка int n;
задает размер массива, но размеры не динамических массивов должны быть константными.
добавьте ключевое слово const int n;
Я добавил инициализацию массива рандомными числами с диапазоном от -10 до 10
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
srand(time(0));
//cout << "Enter line: ";
const int n = 5;
//cin >> n;
int matr[n][n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
int min = -10;
int max = 10;
int randomNumber = rand() % (max - min + 1) + min;
matr[i][j] = randomNumber;
}
}
cout << "Elemets of matrix:\n";
for (int i = 0; i < n; ++i, cout << endl) {
for (int j = 0; j < n; ++j) {
cout << matr[i][j] << "\t";
}
}
cout << endl;
for (int i = 0; i < n; ++i) {
cout << matr[i][i] << "";
}
cout << endl;
for (int i = 0; i < n; ++i) {
cout << matr[i][n - 1 - i] << "";
}
// Find largest element in lines with negative element on main diagonal
for (int i = 0; i < n; ++i) {
if (matr[i][i] < 0) int max[n];
system("pause");
}
return 0;
}
при желании можете менять диапазон