Hisworld.tistory.com
The hisWorld
(140)
hisworld_new
(0)
hisOld
(138)
Android
(7)
Computer Vision
(18)
JAVA
(4)
C/C++
(26)
열혈강의 C
(32)
TCP/IP socket
(12)
WinAPI
(16)
System Programming
(0)
etc
(23)
Plan
(0)
hisWorld
(0)
hiStory
(0)
hiStudy
(0)
hiSnap
(0)
홈
태그
미디어로그
위치로그
방명록
Windows Live Messenger
winapi
Join C
대학생 공모전
The Turing test page
훈스닷넷
C/C++ Reference
WIKI
/
/
블로그 내 검색
열혈강의 C 도전 프로그래밍 THREE - 2
URUZ-7
2008. 2. 11. 19:53
2008. 2. 11. 19:53
[x][x]형 배열에 바깥족부터 안쪽으로 오른 나선형으로 숫자를 입력
#include <stdio.h> void make_arr(int (*arr)[100], int n); void print_arr(int (*arr)[100], int n); //make_arr은 배열에 숫자를 넣는 함수 //print_arr은 만든 배열을 출력하는 함수 int main(void) { int arr[100][100]; int n; fputs("몇줄짜리로 만들까요? ",stdout); scanf("%d",&n); make_arr(arr,n); print_arr(arr,n); //함수를 호출하여 배열을 만들고 출력 return 0; } void make_arr(int (*arr)[100], int n) { int i; int in_num=1; int x=0,y=-1,sw=1; //in_num은 배열에 입력될 초기값 //x,y로 배열의 인자 위치를 좌표로 설정 //y가 -1인 이유는 반복문에서 초기 입력 위치 y를 [0]으로 만들기 위함. while(n!=0){ //가로방향 진행 for(i=0 ; i<n ; i++) { y+=sw; arr[x][y]=in_num++; } n--; //가로->세로 , 세로->가로 진행시 칸수가 하나씩 줄어듬 //세로방향 진행 for(i=0 ; i<n ; i++) { x+=sw; arr[x][y] = in_num++; } sw*=-1; //ex)가로 방향이 오른쪽으로 진행되면 다음 가로 방향은 왼쪽으로 진행됨 } } //반복문을 사용해서 만들어진 배열을 출력 void print_arr(int (*arr)[100], int n) { int i,j; for(i=0 ; i<n; i++) { for(j=0 ; j<n; j++) printf("%4d%s",arr[i][j],j==n-1 ? "\n" : "\t"); //배열 크기가 [100][100]이기 때문에 최대 자릿수가 4자리가 됨으로 4d //행의 끝에 다다르면 개행(\n) 그렇지 않으면 탭(\t) } }
invalid-file
공유하기
게시글 관리
Hisworld.tistory.com
+ Recent posts
Powered by
Tistory
, Designed by
wallel
Rss Feed
and
Twitter
,
Facebook
,
Youtube
,
Google+
티스토리툴바