10진수를 2진수로 변한인데 2% 아쉬운 소스 입니다..설명좀

#includestdio.h
int main(void)
{
int arr[10];
int input,i;
int k=0;
printf(10진수 정수 입력:);
scanf(%d, &input); // 10진수 정수 입력
for(i=0; input0; i++) //정수가 0이되면 프로그램을 끝낸다
{
arr[i]=input%2; // 정수와 2의 나머지값을 배열에 저장, 고로 2진수
input=input/2; // 반복문을 돌려야 하니 정수를 2로 나누어서 다시 정수에 저장
}
for(; i=0; i--)
printf(%d , arr[i]); // 2진수를 출력
return 0;
}

만약 12를 입력하면 1100이 나와야 하는데 2345356 1100 이렇게 쓰레기값도 같이 나와버리네요?ㅜㅜ

댓글 5

  • CutieBaby 2025.12.25

    마지막 arr[i]에 값을 넣고,
    for문의 증감부에서 i++ 해 주잖아요.
    그래서 --i 해 준 겁니다.
    그러면 마지막 arr[i] 부터 출력하게 되겠죠...

  • 갈기슭 2025.12.25

    님 소스대로 하니깐 잘 되네요 ^^ 그런데 어째서 님이 만든 소스대로 하면 잘 되나요?

  • 내꺼하자 2025.12.25

    for(--i; 0 = i; i--)

  • 아이 2025.12.25

    쉬프트연산으로 2진수구하기도 올려봅니다.

    int Num,Count;
    scanf(\%d\

  • 갈기슭 2025.12.25

    int arr[10]={0,}; 로 수정해보세요
    arr 배열을 선언하시고 초기화를 하시지않은상태에서
    바로 출력을해버리셔서 쓰레기값이 나오게된거입니다.

C언어 다른 글

목록