Работа с матрицами 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;
}

при желании можете менять диапазон

→ Ссылка