注册 登录
编程论坛 C++教室

版主快快来 递归问题

於晓琪123 发布于 2014-12-31 11:15, 387 次点击
#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了   我想了好久就是想不通  求解释
2 回复
#2
peach54602014-12-31 11:46
你知道什么叫做形参么?
#3
於晓琪1232014-12-31 13:08
回复 2楼 peach5460
我貌似懂了       谢谢啦啦啦啦啦啦
1