Mam program który ma wypisywać magiczny kwadrat. Gdzie jest w nim błąd?
#include<iostream>
using namespace std;
int main()
{
const int SIZE = 5;
int tab[SIZE][SIZE] = {};
int w = 0, k = SIZE / 2;
tab[w][k] = 1;
for (int n = 2; n < SIZE*SIZE; n += 1)
{
w -= 1; k += 1;
if (w <= 0)
w += SIZE;
if (k >= SIZE)
k -= SIZE;
if (tab[w][k] != 0)
{
//Przesuń współrzędne i sprawdź granice:
w += 1;
if (w >= SIZE)
w -= SIZE;
}
tab[w][k] = n;
}
for (int x = 0; x < SIZE; x += 1)
{
for (int y = 0; y < SIZE; y += 1)
{
cout << tab[x][y] << "\t";
}
cout << endl;
}
}