2014-01-19 20 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

你沒有初始化'rev' 0 – harold

+0

提示:用'-Wall'和遵守警告編譯。 –

回答

3

初始化rev零使用

聲明rev = rev * 10 + rem;使用的rev值是垃圾。

int rev =0 ;

+0

謝謝!有效! – Wix

0

你不想

轉= NUM​​ * 10 + REM;

因爲以前那樣說,REV未初始化..

+1

這是行不通的。那麼,它會正確地執行*某些事情,但與OP所要的不同。 – harold