Здравствуйте, помогите из матрицы 3Х3, сделать матрицу любого размера

#include <iostream>

using namespace std;

int main() {

  int matrix[3][3];

  int horizontalSums[] = {0, 0, 0};

  int verticalSums[] = {0, 0, 0};

  int mainDiagSum = 0;

  int sideDiagSum = 0;

  for (int i = 0; i < matrix; i++) {

    for (int k = 0; k < 3; k++) {

      cin >> matrix[i][k];

      horizontalSums[i] += matrix[i][k];

      verticalSums[k] += matrix[i][k];

      if (i == k) {

        mainDiagSum += matrix[i][k];

      }

      if (i + k == 2) {

        sideDiagSum += matrix[i][k];

      }
    }
  }
  cout << "\nmain diag sum: " << mainDiagSum ;
  cout << "\nside diag sum: " << sideDiagSum;

  bool sums = true;
  for (int i = 0; i < 2; i++) {
    if (verticalSums[i] != verticalSums[i + 1] || horizontalSums[i] != horizontalSums[i + 1] || horizontalSums[i] != verticalSums[i]) {
      sums = false;
    }
  }

  if (sums && horizontalSums[0] == mainDiagSum && verticalSums[0] == mainDiagSum) {
    cout << "\nThIs Is A mAgIc SqUaRe!";
  }
  else {
    cout << "\nThis is not a magic square.";
  }
}

Начнем с того, что у вас нерабочий код :)
Создать массив произвольного размера можно двумя способами:
1. Псевдодинамическая память. Например создать массив на 100 элементов, а использовать только n < 100.
2. Динамическая память. При помощи new выделяете память, а потом при помощи delete чистите ее, чтобы не было утечки.
И ещё совет. Не используйте «магические числа». Если захотите поменять размеры массива, нужно будет много где менять ваши тройки на новые переменные. Так как у вас квадратная матрица, то будет достаточно одной переменной, например const int size = 3. Тогда массив будет объявляться как int matrix[size][size]

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.