版主快快来 递归问题
#include <iostream>using namespace std;
void convert(int x);
int main()
{
int a;
cin>>a;
convert(a);
return 0;
}
void convert(int x)
{
int i;
char c;
if ((i=x/10)!=0)
{
convert(i);
c = '0' + x%10;
cout<<c;
}
else
{
c = '0' + x;
cout<<c;
}
}
我的问题有一点纠结 假如我输入589 那么首先输出的是else的5 然后是8然后是9 那么我的问题是 在输出5的时候,x的值不是5吗? 然后去运行 上面if里的
c = '0' + x%10; 觉得就应该不行了啊 但事实是做这一步运算的时候 x 的值是58 那么为什么先执行的x为5 没有影响后来X = 58,难道是在运行convert(i); 前就已经把58赋值个给convert(i);下面的x了 我想了好久就是想不通 求解释