=== 소감 === 완전 재밌다. 근데 메인이 좀 길어서 보기 안좋은 거 같은데, 변수를 넘기는게 ..흐음 ㅋㅋ 리펙토링 하지않고 올린다. === 코드 === {{{~cpp {{{~cpp #include int num_len(int number); void number_data_input(int number, int number_data[10]); void main() { int number, number_len, i = 0; int number_data[10]; char korean_data[20] = "일이삼사오육칠팔구"; char num_position[15] = " 십백천만"; //<-사실 여기도 그냥 "십백천만"이라고 해도 된다. while(1) { i = 0; printf("끝내려면 0n"); scanf("%d", &number); if(number == 0) break; number_len = num_len(number); number_data_input(number, number_data); //print while(i < number_len) { if(number_data[i] == 0) { }else{ printf("%c", korean_data[2*number_data[i] - 2]); printf("%c", korean_data[2*number_data[i] - 1] ); printf("%c", num_position[2*(number_len - i - 1)]); printf("%c", num_position[2*(number_len - i - 1)+1]); } i++; } printf("n"); } } int num_len(int number) { int lengh = 1; while(number > 9) { ++lengh; number /= 10; } return lengh; } void number_data_input(int number, int number_data[10]) { int number_len; int i; number_len = num_len(number); for(i = 0; i < number_len; i++) { number_data[number_len-i-1] = (number % 10); number /= 10; } } }}} {{{~cpp // 일천사 -> 천사 되게 ver.2, + 리펙토링.. //아직 미완성 #include int num_len(int number); void number_data_input(int number, int *number_data); void print_num_korean(char *korean_data, int *number_data, int i); void print_num_position(char *num_position, int number_len, int i); void main() { int number, number_len, i = 0; int number_data[10]; char korean_data[20] = "일이삼사오육칠팔구"; char num_position[15] = " 십백천만"; //<-사실 여기도 그냥 "십백천만"이라고 해도 된다. while(1) { i = 0; printf("끝내려면 0n"); scanf("%d", &number); if(number == 0) break; number_len = num_len(number); number_data_input(number, number_data); //print while(i < number_len) { if(number_data[i] == 0) { }else if(number_data[i] == 1 && number != 1) { if(i != (number_len-1)) { print_num_position(num_position, number_len, i); }else { print_num_korean(korean_data, number_data, i); print_num_position(num_position, number_len, i); } }else{ print_num_korean(korean_data, number_data, i); print_num_position(num_position, number_len, i); } i++; } printf("n"); } } int num_len(int number) { int lengh = 1; while(number > 9) { ++lengh; number /= 10; } return lengh; } void number_data_input(int number, int *number_data) { int number_len; int i; number_len = num_len(number); for(i = 0; i < number_len; i++) { number_data[number_len-i-1] = (number % 10); number /= 10; } } void print_num_korean(char *korean_data, int *number_data, int i) { printf("%c", korean_data[2*number_data[i] - 2]); printf("%c", korean_data[2*number_data[i] - 1] ); } void print_num_position(char *num_position, int number_len, int i) { printf("%c", num_position[2*(number_len - i - 1)]); printf("%c", num_position[2*(number_len - i - 1)+1]); } //void print_result(char korean_data[20], int number_data[10], }}} === 나한테 할 말 === 흠.. 진트껄 0넣으면 안된다구 구박했건만.. 여기눙 0넣으면 끝나게 하다닛..ㅎ 이런 쌘스쟁이.ㅎ 음. 중간에 변수명 오타 고쳐놔뜸.ㅎ 그리고.. {{{~cpp num_position[15] = " 십백천만"; printf("%c", num_position[2*(number_len - i - 1)]); printf("%c", num_position[2*(number_len - i - 1)+1]); }}} 이런고.. 출력할때 고생하지말궁.. {{{~cpp num_position[5][3] = {"","십","백","천","만"}; printf("%s", num_position[number_len - i - 1]); }}} 이렇게 편하게 해.ㅎ 4byte 안아껴두 된다구~ㅎ 메모리 남아돌앙.ㅎ 저거 소스가 용량 더먹게땁.ㅎ 어쨋든 매번 열심힌걸..;;ㅁ;; 조케따~ 아우..안그래도 게을러서 안하는딩.. 일도 많아서 클나떵.ㅎ 아영이 반에 반만이라도 닮아야 할텐딩.ㅎ 모.. 이뿌게 리펙토링하공~ 매번 문제내느라 수고하넹.ㅎ 고생혀~ 그럼 좋은하루.ㅎ - [조현태] {{{ 완전 재밌다. 근데 메인이 좀 길어서 보기 안좋은 거 같은데, 변수를 넘기는게 ..흐음 ㅋㅋ 리펙토링 하지않고 올린다. }}} - 리팩토링은 프로그램을 완성한 후에 하는것이 아니라 프로그래밍을 하는 도중에 하는게 더 좋다고 생각합니다. - 임인택 ---- [LittleAOI] [숫자를한글로바꾸기]