2014-01-19 1 views
0

숫자를 뒤집기위한 프로그램을 작성하려고합니다. 여기 역순 번호 알고리즘 버그

int num, rev, rem; 
printf("Input a number: "); 
scanf("%d", &num); 
while (num != 0) 
{ 
    rem = num % 10; 
    num = (num - rem)/10; 
    rev = rev * 10 + rem; 
} 
printf("\n\nThe reverse number form is: %d.\n\n", rev); 
getch(); 

문제입니다 : 여기

내 코드의

입력 수 : 123
반대의 형태는 나도 몰라 8321.

입니다 여기서 '8' 에서 오는. 누군가 도울 수 있습니까? 사용 전에

제로
+5

당신은 0 – harold

+0

팁에 rev''초기화되지 않았습니다 : '-Wall' 및주의 경고와 함께 컴파일합니다. –

답변

3

초기화 rev

명세서 rev = rev * 10 + rem;는 쓰레기 rev의 값을 사용한다.

int rev =0 ;

+0

고마워요! 그것은 효과가있다! – Wix

0

당신은

REV = 납입 * 10 + REM 수면을하지 마십시오

이전 말했다 때문에 회전이 초기화되지 않습니다 ..

+1

그럴 수 없습니다. 글쎄, 그것은 정확하게 * 무언가를 할 것이지만 OP가 원하는 것과 같은 것이 아닙니다. – harold