Почему не работает обход матрицы по спирали с центра?
Написал код, он работает, например на матрице 4х4, только до 12 элемента в массиве, начиная с new_matrix[13] - выдает не те значения, с чем связано?
int *helix_center (int** matrix, int size) {
int* new_matrix = new int[size * size];
int count = 0;
int step = 1;
int sup_var = size / 2;
int sup_var_2 = sup_var;
new_matrix[count] = matrix[sup_var][sup_var_2];
count++;
while( step < size ) {
for (int j = 0; ((j < step) && (step < size)); j++) {
if (sup_var_2 != 0)
new_matrix[count] = matrix[sup_var][--sup_var_2];
count++;
}
for (int j = 0; ((j < step) && (step < size)); j++) {
if(sup_var != 0)
new_matrix[count] = matrix[--sup_var][sup_var_2];
count++;
}
step++;
for (int j = 0; ((j < step) && (step < size)); j++) {
new_matrix[count] = matrix[sup_var][++sup_var_2];
count++;
}
for (int j = 0; ((j < step) && (step < size)); j++) {
new_matrix[count] = matrix[++sup_var][sup_var_2];
count++;
}
step++;
}
return new_matrix;
}