标题:有一点看不懂关于四则运算
只看楼主
Autow
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-4-12
结帖率:0
已结贴  问题点数:20 回复次数:1 
有一点看不懂关于四则运算
//添加内容    较复杂的四则运算
int oopcalc::mixed()
{
    int rtn=mul();
    while(shizi[pos]=='+'||shizi[pos]=='-')
    {
        int op=shizi[pos++];
        int opr2=mul();
        if(op=='+')
            rtn+=opr2;
        else
            rtn-=opr2;
    }
    return rtn;
}
int oopcalc::mul()
{
    int rtn=number();
    while(shizi[pos]=='*'||shizi[pos]=='/')
    {
        int op=shizi[pos++];
        int opr2=number();
        if(op=='*')
            rtn*=opr2;
        else
            rtn/=opr2;
    }
    return rtn;
}
int oopcalc::number()
{
    int rtn;                                                    //这里开始看不懂
    if(shizi[pos]=='(')
    {
        pos++;
        rtn=mixed();
        pos++;
    return rtn;                                              //到这里   到底什么意思
    }
    rtn=atoi(shizi+pos);
    while(isdigit(shizi[pos]))
        pos++;
    return rtn;
}


void main()
{
    oopcalc a ;
    a.menu();
}


搜索更多相关主题的帖子: number return 
2014-04-12 08:44
李_小_辉
Rank: 2
等 级:论坛游民
帖 子:2
专家分:23
注 册:2014-4-11
得分:20 
Number函数是返回第一个或下一个数字,并将pos移至下一个非数字;如果遇到括号就进行下一级递归,即子级递归。。
2014-04-12 09:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429994-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017385 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved