Top.Mail.Ru
Ответы

Составить матрицу спиралью на языке С++

Вывести квадрат, состоящий из N*N клеток, заполненных числами от 1 до N в квадрате. Выводится N строк по N чисел, разделённых пробелами. Не допускается начинать спираль в ином, кроме верхнего правого, углу, закручивать спираль по часовой стрелке или изнутри наружу. Спасибо тем, кто поможет.

По дате
По рейтингу
Аватар пользователя
Новичок

Примерно так

arr[0][0]=1;o=2;k=N;x=1;y=0;
while(k>0){
for(i=0;i<k;i++){ x++; arr[x][y]=o++; } k--;
for(i=0;i<k;i++){ y++; arr[x][y]=o++; }
for(i=0;i<k;i++){ x--; arr[x][y]=o++; } k--;
for(i=0;i<k;i++){ y--; arr[x][y]=o++; }
}

PS: Это спираль по часовой стрелке

Аватар пользователя
Оракул

"спасибо" - это когда походя подсказал название улицы...