위의 그림과 같이 1부터 순서대로 수를 적어 넣는 달팽이 배열이다.
#include <stdio.h>
int main()
{
int start=0;
int count=0;
int count2;
int X=0;
int Y=0;
int XH;
int YH;
int XL=0;
int YL=0;
int area[10][10]={0};
int height;
int width;
printf("X, Y좌표를 입력하시오 : ");
scanf("%d %d", &height, &width);
XH = height-1;
YH = width-1;
for(count=0; height*width>count; count++)
{
area[Y][X]=count+1;
switch(start)
{
case 0 : X++;
if(XH==X)
{
start=1;
YL++;
}
break;
case 1 : Y++;
if(YH==Y)
{
start=2;
XH--;
}
break;
case 2 : X--;
if(XL==X)
{
start=3;
YH--;
}
break;
case 3 : Y--;
if(YL==Y)
{
start=0;
XL++;
}
break;
}
}
for(count=0; count<width; count++)
{
for(count2=0; count2<height; count2++)
{
printf("%2d ", area[count][count2]);
}
printf("\n");
}
return 0;
}
int main()
{
int start=0;
int count=0;
int count2;
int X=0;
int Y=0;
int XH;
int YH;
int XL=0;
int YL=0;
int area[10][10]={0};
int height;
int width;
printf("X, Y좌표를 입력하시오 : ");
scanf("%d %d", &height, &width);
XH = height-1;
YH = width-1;
for(count=0; height*width>count; count++)
{
area[Y][X]=count+1;
switch(start)
{
case 0 : X++;
if(XH==X)
{
start=1;
YL++;
}
break;
case 1 : Y++;
if(YH==Y)
{
start=2;
XH--;
}
break;
case 2 : X--;
if(XL==X)
{
start=3;
YH--;
}
break;
case 3 : Y--;
if(YL==Y)
{
start=0;
XL++;
}
break;
}
}
for(count=0; count<width; count++)
{
for(count2=0; count2<height; count2++)
{
printf("%2d ", area[count][count2]);
}
printf("\n");
}
return 0;
}
'C언어 > 프로그래밍' 카테고리의 다른 글
Hex뷰어 소스 (0) | 2010.11.16 |
---|---|
로또 번호 생성 프로그램 (0) | 2010.11.11 |
원하는 수의 소수만 출력하는 프로그램 (0) | 2010.10.12 |
구구단 원하는 값 입력시 출력하는 프로그램 V.2 (for문 사용) (0) | 2010.10.11 |
구구단 원하는 값 입력시 출력하는 프로그램 (while문 사용) (0) | 2010.10.11 |