약간의 버그와 함정 코드가 숨어있다 ㅋㅋ
#include <stdio.h>
#include <string.h>
void itoa(int num, char *str){
int i=0;
int radix = 10;
int deg=1;
int cnt = 0;
while(1){
if( (num/deg) > 0)
cnt++;
else
break;
deg *= radix;
}
deg /=radix;
for(i=0; i<cnt; i++) {
*(str+i) = num/deg + \'0\';
num -= ((num/deg) * deg);
deg /=radix;
}
*(str+i) = \'\\0\';
}
void f(int input, char ch)
{
if(input) {
f(input-1, ch);
}
else {
char sz[16];
char * pch = NULL;
itoa(input, sz);
pch=strchr(sz, ch);
while (pch != NULL)
{
*pch = \'*\';
pch=strchr(pch+1, ch);
}
printf(\"%2s \", sz);
if(input % 10 == 9) printf(\"\\n\");
}
}
int main()
{
f(40, \'2\');
}
이거 분명히 잘 돌아가는거다. 두 군데만 고치면 완벽하게 잘 돌아감
으학이는 이 코드를 분석함니다. 절대 긁어 붙이지 않습니다
오우ㅏㅁ화!!!!!! 형 고마워 ㅠㅠ 실행은 안되지만 쫌만 수정해서 쓸께!! ㅠㅠ
일부러 그렇게 해놓은거니 잘 뒤져봐라. 아무리 못해도 이 정도는 해야하지 않겠나