-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)在单个操作中查找商和余数。 –