SMALL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #include <stdio.h> #include <string.h> void init_intro(char (*intro)[80], char **pint); // 2차원 배열과 포인터 배열 연결. int input_intro(char (*intro)[80]); // 인사말 입력 void sort_intro(char **pint, int cnt); // 인사말 정렬 void print_intro(int mode, void *vp, int cnt); // 인사말 출력 int main(void) { char intro[10][80]; // 인사말 입력 배열 char *pint[10]; // 각 인사말을 연결할 포인터 배열 int cnt; // 입력된 인사말 수 init_intro(intro, pint); // intro와 pint 연결 cnt = input_intro(intro); // 인사말 입력, 입력한 인사말 수 반환 sort_intro(pint, cnt); // 인사말 사전 순 정렬. print_intro(1, pint, cnt); // 1을 사용하면 정렬된 인사말 출력 print_intro(0, intro, cnt); // 0을 사용하면 최초 입력된 인사말 출력 return 0; } void init_intro(char (*intro)[80], char **pint) // 2차원 배열과 포인터 배열 연결. { int i; for(i=0; i<10; i++) { pint[i] = intro[i]; } } int input_intro(char (*intro)[80]) // 인사말 입력 { int i; int cnt = 0; while(1) { gets(intro[i]); if(strcmp(intro[i], "end") == 0) { break; } cnt++; i++; } return cnt; } void sort_intro(char **pint, int cnt) // 인사말 정렬 { int i, j; char *temp; for(i = 0; i < cnt; i++) { for(j = i + 1; j < cnt; j++) { if(strcmp(pint[i], pint[j])>0) { temp = pint[i]; pint[i] = pint[j]; pint[j] = temp; } } } } void print_intro(int mode, void *vp, int cnt) // 인사말 출력 { int i; if(mode == 1) // 정렬된 인사말(사전순으로 출력) { printf("#사전 순으로 출력...\n"); for(i = 0; i < cnt; i++) { printf("%s\n", ((char **) vp)[i]); } printf("\n"); } else if(mode == 0) // 최초 인사말(입력순으로 출력) { printf("#입력 순으로 출력...\n"); for(i = 0; i < cnt; i++) { printf("%s\n", ((char(*)[80]) vp)[i]); } printf("\n"); } } | cs |
LIST
'개인자료 > 프로그래밍' 카테고리의 다른 글
Embedded Reference (0) | 2015.06.02 |
---|---|
ARM에 사용되는 Register (0) | 2015.06.01 |
임베디드 레시피 및 망고보드(Cortex M-3) 구입 (0) | 2015.05.29 |
[임베디드 C] 비트 연산 매크로 (0) | 2015.05.17 |
[임베디드 C] 특정 비트 연산 (3) | 2015.05.17 |
[C언어] 프로필 교환 프로그램 (0) | 2015.05.16 |
[C언어] 방명록 프로그램 (0) | 2015.05.15 |
[C언어] 지점별 실적관리 프로그램 (0) | 2015.05.15 |
[C언어] 단어 추출 프로그램 (2) | 2015.05.15 |
[C언어] 전역 변수 교환 프로그램 (0) | 2015.05.15 |