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
/
/
블로그 내 검색
2
열혈강의 C 도전 프로그래밍 FOUR - 2
2008.02.16
열혈강의 C 도전 프로그래밍 THREE - 2
2008.02.11
열혈강의 C 도전 프로그래밍 FOUR - 2
URUZ-7
2008. 2. 16. 19:21
2008. 2. 16. 19:21
문제1을 구조체 배열을 선언하지 말고 구조체 포인터 배열을 선언해 동적으로 할당하는 형태로 변환
#include <stdio.h> #include <stdlib.h> void input(struct info *arr,int how); void output(struct info *arr,int how); typedef struct info { char auth[100]; char name[100]; int page; }; int main(void) { struct info* arr; int how; fputs("몇권의 책을 입력하겠습니까? :",stdout); scanf("%d",&how); arr=(struct info*)calloc(how,sizeof(struct info)); input(arr,how); output(arr,how); free(arr); return 0; } void input(struct info *arr,int how) { int i; for(i=0 ; i<how; i++) { printf("\n\n%d번째 책의 정보\n",i+1); fputs("\n저자 :",stdout); scanf("%s",&arr[i].auth); fputs("제목 :",stdout); scanf("%s",&arr[i].name); fputs("페이지수 :",stdout); scanf("%d",&arr[i].page); } } void output(struct info *arr,int how) { int i; fputs("\n\n",stdout); for(i=0; i<how; i++) { printf("book %d\n",i+1); printf("저자 : %s\n",arr[i].auth); printf("제목 : %s\n",arr[i].name); printf("페이지 수 : %d\n",arr[i].page); fputs("\n",stdout); } }
invalid-file
공유하기
게시글 관리
구독하기
Hisworld.tistory.com
열혈강의 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
PREV
이전
1
NEXT
다음
+ Recent posts
Powered by
Tistory
, Designed by
wallel
Rss Feed
and
Twitter
,
Facebook
,
Youtube
,
Google+
티스토리툴바