Trevon Harris Ответов: 2

Нужна помощь с моей программой magic square :(


Я усердно работал над этой программой и не добился никакого успеха.
Я сделал двумерный массив, но когда я ввожу число, я просто получаю большое число с - перед ним. Я даже не знаю, какие алгоритмы использовать, чтобы сделать диагонали магического квадрата равными друг другу. Вот мой исходный код:
#include<fstream>
#include<iomanip>
using namespace std;

ofstream outfile;
int main()
{
	outfile.open("output.txt");

	int n; //intermediate variables and array information store
	cout << "Welcome to Magic Square Program!" << endl << endl;
	cout << "Enter order of the magic box: ";
	cin >> n;

	int MagicSquare[5][5];
	MagicSquare[0][2] = 1;
	for (int x = 0; x < n; x++)
	{
		for (int y = 0; y < n; y++){
			cout << setw(3) << x * y << MagicSquare[x][y];
	}
		cout << endl;
	}
system("pause");
	return 0;
}

2 Ответов

Рейтинг:
1

KarstenK

вы должны где-то установить значения нашего массива. любить

MagicSquare[x][y] = x * y;
прежде чем получить к нему доступ.

И а я тебе говорил убедитесь, что n меньше 5 или выделите память
int *MagicSquare = new int[n*n];
//at the ende
delete MagicSquare;//


CPallini

Вы сказали об этом оператору 3 года назад?
:-)

Рейтинг:
1

CPallini

Цитата:
cout << setw(3) << x * y << MagicSquare[x][y];
все MagicSquare массив но тот самый MagicSquare[0][2] элемент неинициализирован, поэтому вы получаете там мусор.