全局变量i,递归过程加一,为什么会在回溯的时候回到原来的值,又变成0了?
我后面需要打印,所以得保存一下字符数组到第几个被赋值了。
char s[100];
int i = 0,count=0;
void func(int n, char s[], int i) //把数字n变成数字字符保存到字符数组s里
{
s[i] = n % 10+'0'; // n的最后一位,先赋值再往下处理
if (n / 10 == 0)return; // 最后到个位赋值完了就结束往下递归,开始回溯
func(n / 10, s, i=i+1); //往下递归
// count++;
int main()
{
int n;
scanf("%d", &n);
func(n, s, i);
for (count;count >= 0;count--) //这个本来用的是i,结果发现i不行,换的count就可以了。
printf("%c", s[count]);
return 0;
}
}
