{{{~cpp
{{{~cpp
#include <stdio.h>
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 <stdio.h>
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] [숫자를한글로바꾸기]