U E D R , A S I H C RSS

숫자를한글로바꾸기/정수민

느낀점


동영상강의가 탐나서 엄마공장서 짬내서 한번 만들어봤다.
알고리즘은 문제가 없는데 자잘한 실수때문에 2시간이나 더걸려버렸다.
이런식으로 시간소모한게 하루이틀은 아니니 넘어가고;

그리고 코딩 스타일을 여러가지 건드려보는 중이다.
이러저러한 모양중에서 어떤게 제일보기 좋은지 생각하는중... 꾀나 . 어렵더라 -_-;;

이런건 만들시간있고 자바는 안건드리는거 승한이 형이 알면 화낼태지만 ㅡㅡ;;;
이런문제는 한번보면 다른일을 못하니 별수없이;;;

소스-정보만 더 주어지면 확장은 얼마든지 가능하다.


~cpp 
#include <stdio.h>

void main()
{

char
	soos_ja[10][3] = {"","일","이","삼","사","오","육","칠","팔","구"},
	small_ja_ri[4][3] = {"","십","백","천"},
	big_ja_ri[4][3] = {"","만","억","조"},
	input[17]
	;

int
	ja_ris_soo=0,
	dummy_ja_ris_soo,
	temp_big_ja_ri
	;

///////////////////
//입력받는다.    /
/////////////////

printf("입력 : ");
scanf("%s",&input);


//////////////////////////
//자릿수를 알아 낸다.   /
////////////////////////

while (1) {
	if ( input[ja_ris_soo] != 0 ) {
		ja_ris_soo++;
	}
	else {
		break;
	}
}


//////////////////////////////////////////////////
//한글로 출력하기 앞서 필요한 변수들을 저장     /
////////////////////////////////////////////////

temp_big_ja_ri = (ja_ris_soo-1)/4;
dummy_ja_ris_soo = ja_ris_soo;


/////////////////////
//한글로 출력!     /
///////////////////


while (ja_ris_soo>0) {
	/////////////////////////////////////////////////////////////////////////////////////
	// 숫자를 출력한다. 여기서 "input[ dummy_ja_ris_soo - ja_ris_soo ]"이조건은 시작을 //
	// 제외한 부분에 1은 출력을 안한다는 것이다.                                       //
	// else if 부분은 시작부분은 무조건 숫자를 출력한다는 조건이다.                    /
	///////////////////////////////////////////////////////////////////////////////////
	if (input[ dummy_ja_ris_soo - ja_ris_soo ] != '1' ) {
		printf("%s",soos_ja[ input[ dummy_ja_ris_soo - ja_ris_soo ]-48 ]);
	}
	else if ((dummy_ja_ris_soo - ja_ris_soo) == 0) {
		printf("%s",soos_ja[ input[ dummy_ja_ris_soo - ja_ris_soo ]-48 ]);
	}

	//////////////////////////////////////////////////////////////////////////////////////
	// 작은 자리단위를 출력한다. 여기서 "input[ dummy_ja_ris_soo - ja_ris_soo ] != '0'" //
	// 이조건은 0인부분은 작은자리단위를 출력하지 않는다는 조건이다.                    / 
	////////////////////////////////////////////////////////////////////////////////////
	if (input[ dummy_ja_ris_soo - ja_ris_soo ] != '0' ) {
		printf("%s",small_ja_ri[(ja_ris_soo-1)%4]);
	}

	///////////////////////////////////////////////////////////////////////////////////////
	// 큰 자리단위를 출력한다. "(ja_ris_soo-1)%4==0"이조건은 숫자의 뒤에서부터 4개단위로 //
 	// '만','억','조'를 출력하는 조건이다.                                               /
	/////////////////////////////////////////////////////////////////////////////////////
	if ( (ja_ris_soo-1)%4==0 ) {
		printf("%s ",big_ja_ri[temp_big_ja_ri]);
		temp_big_ja_ri--;
	}

	//////////////////////////////////////////
	// 앞에서부터 출력하므로 --로 연산한다. /
	////////////////////////////////////////
	ja_ris_soo--;
}

}



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:15
Processing time 0.0094 sec