10진수를 2진수로 변한인데 2% 아쉬운 소스 입니다..설명좀
처녀자리
2023.04.01
#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 이렇게 쓰레기값도 같이 나와버리네요?ㅜㅜ
-
의사양반
마지막 arr[i]에 값을 넣고,
for문의 증감부에서 i++ 해 주잖아요.
그래서 --i 해 준 겁니다.
그러면 마지막 arr[i] 부터 출력하게 되겠죠... -
물고기자리
님 소스대로 하니깐 잘 되네요 ^^ 그런데 어째서 님이 만든 소스대로 하면 잘 되나요?
-
Schokolade
for(--i; 0 = i; i--)
-
by풀잎
쉬프트연산으로 2진수구하기도 올려봅니다.
int Num,Count;
scanf(\%d\ -
봄여우
int arr[10]={0,}; 로 수정해보세요
arr 배열을 선언하시고 초기화를 하시지않은상태에서
바로 출력을해버리셔서 쓰레기값이 나오게된거입니다.