|
|
|
| Здравствуйте!!! Помогите пожалуйста решить задачу!!!
Нужно заполнить квадратную матрицу размером nхn последовательными целыми числами от 1 до n в квадрате, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке.
В институте программируем на Borland C++ 3.1
Мой e-mail: galchonok_sunny@mail.ru
Заранее спасибо!!! | |
|
|
|
|
|
|
|
для: Галчонок
(06.04.2007 в 22:24)
| | Вот один из вариантов решения:
#include <stdio.h>
#include <conio.h>
#define N 5
void main()
{
clrscr();
int i,j,k,l,a[N][N],x,krug=0;
i=0;
x=0;
for (;;)
{
for (j=0+krug;j<N-krug;j++)
{
x+=1;
if (x==N*N+1) goto Met;
a[0+krug][j]=x;
}
for (i=1+krug;i<N-krug;i++)
{
x+=1;
if (x==N*N+1) goto Met;
a[i][N-1-krug]=x;
}
for (k=N-1-1-krug;k>=0+krug;k--)
{
x+=1;
if (x==N*N+1) goto Met;
a[N-1-krug][k]=x;
}
for (l=N-1-1-krug;l>0+krug;l--)
{
x+=1;
if (x==N*N+1) goto Met;
a[l][0+krug]=x;
}
krug++;
}
Met:
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
printf("%3d",a[i][j]);
printf("\n");
}
getch();
}
|
| |
|
|
|