do while 문 어떤것이잘못된건지 모르겠어요
놓아줄게요
2023.04.01
질문 제목 : do while 문 어떤것이잘못된건지 모르겠어요
do while 문 어떤것이잘못된건지..질문 내용 : 4자리 정수를 받아서 거꾸로 출력하게 하는건데요 4567 이면 7654로
근데 이걸 do while 문으로 해야하는데..
#include stdio.h
int main(void)
{
int a,x,i;
printf(정수를 입력하시오: );
scanf(%d, &x);
i = 1;
do
{
a = (x/i)&10;
printf(%d, a);
i *= 10;
}while(i=1000);
return 0;
}
하면 계속 이상한 숫자만 나오는데 어디가 잘못된건지...
-
유메
돌려보지도 않고 눈짐작으로만 쓰고 가서 좀 성의없는 것 같지만,
a = (x/i)&10; 이걸 a = (x/i)%10;로 고쳐야 할 것 같은데 말이죠. -
지옥
a=(x/i)&10
X가 4567이면
처음에는 4567/10 &10 = 456&10= 0 이 됩니다.
4567/100&10= 45&10= 0입니다.
&연산은 비트 연산으로 2진수로 변환된 두 수에서 같은 자리에 1이여야 최종적으로 나오는 결과도 1이 들어갑니다.