number = 5
1 2 3 4 5
16 0 0 0 6
15 0 0 0 7
14 0 0 0 8
13 12 11 10 9
1 2 3 4 5
16 0 0 0 6
15 0 0 0 7
14 0 0 0 8
13 12 11 10 9
#include <stdio.h>
int main()
{
int i,j,n,k=0;
int a[30][30]={0,};
printf("Pleas enter number :");
scanf("%d",&n);
printf("number = %d :\n",n);
for(i=0;i<1;i++)
{
for(j=0;j<n;j++)
a[i][j]=++k;
}
for(i=1;i<n-1;i++)
{
for(j=0;j<n-2;j++)
a[i][j+1]=0;
for(j=0;j<1;j++)
a[i][n-1]=++k;
}
for(i=0;i<1;i++)
{
for(j=0;j<n;j++)
a[n-1][n-(j+1)]=++k;
}
for(i=1;i<n-1;i++)
{
for(j=0;j<1;j++)
a[n-(i+1)][0]=++k;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}
훌륭~~, 근데 C 를 공부하는게 아니고, 알고리즘을 공부하는 거라면 scheme, ansi common lisp, python, haskell 중하나로 공부하세요. C 로 알고리즘 공부하는 거는 개 노다가 입니다~~.
위처럼 단순한거야, 큰문제 안되지만, 점점 복잡해지면, 효율성 차이가 심하게 남니다~ .
ㄴ아 ㅋ 네 님이 말해준데로 2차원을 1차원으로 풀어서 생각햇더니 많이 도움이 됫어요 ㅋ