-1
我是C新手,我試圖用遞歸來反轉整數中的數字(例如,123變爲321)。我還需要使用稱爲reverseDigits的void函數來打印結果。該函數成功反轉數字,我的問題是,當我嘗試打印結果時,它會多次打印它。例如,打印「321 321 321」而不打印「321」。我注意到它打印結果的數量是多少。 「12」輸出「21 21」,「123」輸出「321 321 321」等。我無法弄清楚是什麼導致了這種情況發生。我只需要它打印一次。是什麼導致了這種情況發生? 主函數中的reverseDigits(123)僅用於查看輸入數字後的結果,但不會出現在最終程序中。 (不知道這是否相關)。使用C中的遞歸在數字中反轉數字
#include <stdio.h>
#include <stdlib.h>
int reverse=0;
void reverseDigits(int number){
int remainder;
if (number!=0){
remainder = number % 10;
reverse = (reverse*10)+remainder;
reverseDigits(number/10);
printf("%i ",reverse);
}
}
int main() {
reverseDigits(123);
return 0;
}
您可以使用[div()函數](http://pubs.opengroup.org/onlinepubs/9699919799/functions/div.html)在單個操作中查找商和餘數。 –