소ê°� ¶
ì™„ë²½í•˜ë‹¤ê³ ìž�부한다. (소스ë§�구요 프로그램 ì¶œë ¥..헤헤..^^)
왜ëƒ�하면.. 예외처리(?)를 완벽하게, ì›�시ì �으로 처리했기 때문ì—�?!!
�분� 소스가 길어졌다.
로마숫ìž�는 숫ìž�를 길게 ì“°ì§€ ì•Šìœ¼ë ¤ëŠ” ë…¸ë ¥ì�˜ í�”ì �ì�€ ë³´ì�´ì§€ë§Œ ë”± 꼬집어서 한가지로 ë§�í• ì•Œê³ ë¦¬ì¦˜ì�€ 없는것 같다.
왜ëƒ�하면.. 예외처리(?)를 완벽하게, ì›�시ì �으로 처리했기 때문ì—�?!!
�분� 소스가 길어졌다.
로마숫ìž�는 숫ìž�를 길게 ì“°ì§€ ì•Šìœ¼ë ¤ëŠ” ë…¸ë ¥ì�˜ í�”ì �ì�€ ë³´ì�´ì§€ë§Œ ë”± 꼬집어서 한가지로 ë§�í• ì•Œê³ ë¦¬ì¦˜ì�€ 없는것 같다.
소스 ¶
~cpp
#include <stdio.h>
#include <string.h>
void input(int *number);
void operation(int number, char roma_data[3][4]);
void output(int number, char resultdata[20][4]);
void main()
{
int number = 0;
char roma_data[3][4] = {"â…©", "â… ", "â…¤"};
while(1)
{
input(&number);
if(number == 99)
break;
if(number > 99 || number <= 0)
{
printf("다시 ìž…ë ¥í•´ 주세요...n");
}else
{
operation(number, roma_data);
}
}
}
void input(int *number)
{
printf("숫ìž�를 ìž…ë ¥(종료:99) :");
scanf("%d", number);
}
void operation(int number, char roma_data[3][4])
{
int numberdata[5] = {0,};
char resultdata[20][4] = {0,};
int i = 0;
numberdata[0] = number / 10;
numberdata[1] = number % 10;
while(numberdata[0] > 0)
{
strcpy(resultdata[i], roma_data[0]);
++i;
--numberdata[0];
}
if(numberdata[1] == 4 || numberdata[1] == 9)
{
strcpy(resultdata[i], roma_data[1]);
++i;
if(numberdata[1] == 4)
strcpy(resultdata[i], roma_data[2]);
else
strcpy(resultdata[i], roma_data[0]);
++i;
numberdata[1] = 0;
}else if(numberdata[1] >= 5)
{
strcpy(resultdata[i], roma_data[2]);
numberdata[1] -= 5;
++i;
}
while(numberdata[1] >= 1)
{
strcpy(resultdata[i], roma_data[1]);
++i;
--numberdata[1];
}
output(number, resultdata);
}
void output(int number, char resultdata[20][4])
{
int i = 0;
printf("%d : ", number);
while(i < 18)
{
printf("%s", resultdata[i]);
++i;
}
printf("n");
}
나한테 í• ë§� ¶
완벽하네..ã…Žã…Ž 사실 ê·¸ë ‡ê²Œ 길지ë�„ 않는ë�°?ã…Ž 한 1000ìž�리쯤 가면 좀 ê¸¸ì–´ì§ˆë ¤ë‚˜..ã…Žã…Ž ì™ ì§€ 한 {}안ì�˜ ë‚´ìš©ì�´ 비슷비슷해 ë³´ì�´ê¸°ëŠ” 하지만.ã…Žã…Ž ë�..어디가 중복ì�¸ì§€ëŠ” 나ë�„ ëª¨ë¥´ê² ..ã…Žã…Ž 그러니 나름대로 괜찮ì�€ 소스ë�¼ê³ .. ã…Žã…Ž 그럼 좋ì�€í•˜ë£¨..(ì¶”ì‹ : 네 소스는 í•ìƒ� 테스트가 잘ë�¨.ã…Ž) - 조현태
LittleAOI 로마숫�바꾸기










