10진수를 2진수로 바꾸는 프로그램인데요
스킬
2023.04.01
#includestdio.h
int arr[50];
int i=0,j;
void bi(int a)
{
if(a/2==0)
{
for(j=i-1;j0;j--)
printf(%d,arr[j]);
}
else
{
arr[i]=a%2;
i++;
bi(a/2);
}
}
int main(void)
{
int input;
printf(input : );
scanf(%d,&input);
bi(input);
printf(\n);
return 0;
}
어디가 잘못된거죠 ;;
1을 입력하면 무한루프돌다가 쓰레기값나오고
디버깅해도 문제는 없는데;;;
2부터 쭈욱 넣으면
함수를 통과하나봐요.
그냥 \n만이 출력되네요 ;
-
똥덩어리
for(j=i-1;j0;j--)
여기서 j0 이 아닌거같은데요.... -
차미
아직 이해를 못하겠습니다 ㅠ j=i-1 는 재귀함수에 의해 1이 들어오기전
i++ 은 진행되므로 이것을 빼주기 위함이었습니다 ;;;
그리고 저 for문은 뒤에서부터 출력해주기 위함이였는데 ;; -
영동교
printf(\%d\