亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C++中用于計算四則混合運算表達式的遞歸函數

2019-11-17 05:43:43
字體:
來源:轉載
供稿:網友
用于計算四則混合運算表達式的遞歸函數
by billow3(QQ:41965573)
//---------------------------------------------------------------------------
AnsiString __fastcall Calc(String sEXP)
{
    // 計算不帶變量的四則混合運算表達式(只含數字、小數點、+-*/號和括號)
    // 正數不許帶正號
    int posL, pos, posR;
    // pos->當前考慮的運算符的位置
    // posL->當前考慮的運算符之前最近的運算符的位置
    // posL->當前考慮的運算符之前后近的運算符的位置
    String sTmp, sL, sR;
    // sL->當前考慮的運算符的左操作數字符串,sR->當前考慮的運算符的右操作數字符串
    bool IsMinus; // IsMinus->當前*/序列的符號
    if(sExp.Ans        return(sExp);
    while(pos = sExp.AnsiPos(" "))
        sExp = sExp.Delete(pos, 1); // 去除表達式中的空格
    if(sExp.IsEmpty())
        return("0");
    while((pos = sExp.AnsiPos("[")) > 0
             (pos = sExp.AnsiPos("{")) > 0) // 統一左括號為(
        sExp = sExp.SubString(1, pos - 1) + "("
                + sExp.SubString(pos + 1, sExp.Length());
    while((pos = sExp.AnsiPos("]")) > 0
             (pos = sExp.AnsiPos("}")) > 0) // 統一右括號為)
        sExp = sExp.SubString(1, pos - 1) + ")"
                + sExp.SubString(pos+1, sExp.Length());
    // 處理括號:遞歸計算括號中的表達式,最后消去括號
    while(posL=sExp.LastDelimiter("(")) // 最里層(
    {
        sTmp = sExp.SubString(posL + 1, sExp.Length());
        posR = sTmp.AnsiPos(")"); // 最里層)
        if(posR == 0)
            return("error:沒有配對的), 公式錯!");
        sExp = sExp.SubString(1, posL - 1)
                + Calc(sTmp.SubString(1, posR - 1))
                + sTmp.SubString(posR + 1, sTmp.Length());
    }
    // 以下處理不帶括號表達式中的*/序列
    IsMinus = false; // IsMinus->當前*/序列的符號
    while(sExp.LastDelimiter("*/")) // 存在*或/
    {
        for(pos = 1; !sExp.IsDelimiter("*/", pos)
                && pos <= sExp.Length(); pos++); // 第一個*或/
        if(pos == 1  pos == sExp.Length())
            return("error:首或尾字符是*/運算符, 公式錯!");
        posL = sExp.SubString(1, pos - 1).LastDelimiter("+-");
        // posL->第一個*/之前的第一個+-
Minus0:
        for(posR = pos + 1; !sExp.IsDelimiter("+-*/", posR)
                && posR <= sExp.Length(); posR++);
        // posR->第一個*/之后的第一個+-*/運算符
        if(posR == sExp.Length())
            return("error:尾字符是+-*/運算符, 公式錯!");
        if(sExp.SubString(pos, 2) == "*-"
                 sExp.SubString(pos, 2) == "/-") // 乘數或除數為負
        {
            sExp.Delete(pos+1, 1);
            IsMinus = !IsMinus;
            goto Minus0;
        }
        sL = sExp.SubString(posL + 1, pos - posL - 1);
        sR = sExp.SubString(pos + 1, posR - pos - 1);
        if(sExp.IsDelimiter("/", pos) && sR == "0")
            return("error:除數為零,無意義!");
        sExp = (posL == 0? String(""): sExp.SubString(1, posL))
                + (sExp.IsDelimiter("*", pos)?
                (sL.ToDouble() * sR.ToDouble()):
                (sL.ToDouble() / sR.ToDouble()))
                + sExp.SubString(posR, sExp.Length());
    }
    if(IsMinus)
        sExp = String("-") + sExp;
    // 經過上面的系列處理,sExp中的運算


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av电影院| 国产精品免费网站| 自拍偷拍亚洲欧美| 国产在线拍揄自揄视频不卡99| 尤物九九久久国产精品的分类| 欧美日韩加勒比精品一区| 国产欧亚日韩视频| 伊人久久综合97精品| 韩国欧美亚洲国产| 精品国产999| 亚洲女人天堂网| 日韩在线观看电影| 久久久久亚洲精品成人网小说| 亚洲欧美日韩网| 欧美精品国产精品日韩精品| xxx成人少妇69| 欧美日韩亚洲精品内裤| 久久亚洲私人国产精品va| 欧美xxxx做受欧美.88| 亚洲国产小视频| 日日噜噜噜夜夜爽亚洲精品| 欧洲午夜精品久久久| 成人在线国产精品| 国产女人18毛片水18精品| 欧美又大粗又爽又黄大片视频| 最新国产成人av网站网址麻豆| 精品福利樱桃av导航| 久久久久久国产三级电影| 中文字幕不卡av| 欧美成人午夜视频| 久久资源免费视频| 国产成人在线亚洲欧美| 日韩电视剧在线观看免费网站| 日韩一级裸体免费视频| 精品国产91乱高清在线观看| 国产成人精品av| 97热在线精品视频在线观看| 国产精品爽爽ⅴa在线观看| 国产精品美女视频网站| 国产日韩在线亚洲字幕中文| 91亚洲精品久久久| 欧美性色视频在线| 欧美壮男野外gaytube| 成人情趣片在线观看免费| 亚洲精品色婷婷福利天堂| 亚洲免费伊人电影在线观看av| 久久综合久久八八| 日韩中文字幕在线免费观看| 国产91成人在在线播放| 欧美黄色成人网| 国产精品国产三级国产aⅴ9色| 亚洲一级黄色av| 欧美性xxxxxx| 亚洲人成毛片在线播放| 欧美激情中文字幕在线| 欧美性猛交xxxx乱大交3| 一区二区三区视频免费| 成人国产精品久久久久久亚洲| 日韩av黄色在线观看| 久久不射热爱视频精品| 亚洲精品一区久久久久久| 欧日韩在线观看| 成人久久18免费网站图片| 性亚洲最疯狂xxxx高清| 久久国产精彩视频| 国产精品久久久久久av下载红粉| 国产主播喷水一区二区| 国产精品一区二区久久精品| 午夜精品三级视频福利| 亚洲品质视频自拍网| 亚洲精品久久久久| 国产91精品最新在线播放| 色综合久综合久久综合久鬼88| 97**国产露脸精品国产| 久久久999成人| 亚洲天堂日韩电影| 日本高清+成人网在线观看| 亚洲精品国产精品自产a区红杏吧| 久久黄色av网站| 欧美高清在线视频观看不卡| 美日韩精品视频免费看| 成人日韩在线电影| 欧美大片大片在线播放| 久久久成人av| 亚洲人成亚洲人成在线观看| 2023亚洲男人天堂| 欧美精品videos| 萌白酱国产一区二区| 久久国产精品网站| 亚洲尤物视频网| 日韩欧美国产中文字幕| 国产精品igao视频| 精品国产拍在线观看| 久久91精品国产91久久久| 亚洲国产欧美日韩精品| 一本久久综合亚洲鲁鲁| 国产精品盗摄久久久| 黄色成人在线免费| 国产精品美女视频网站| 美日韩精品免费观看视频| 久久视频国产精品免费视频在线| 成人有码在线视频| 国模视频一区二区| 亚洲欧美精品伊人久久| 欧美裸身视频免费观看| 欧美一级淫片丝袜脚交| 日韩精品中文字幕在线| 欧美性xxxx极品hd欧美风情| 国产精品91视频| 亚洲午夜久久久久久久| 国内精品久久久久久影视8| 欧美精品在线免费播放| 欧美激情网友自拍| 日韩欧美国产中文字幕| 亚洲激情在线观看视频免费| 成人444kkkk在线观看| 国产精品美女久久久免费| 亚洲精品国产欧美| 欧美国产极速在线| 97在线视频免费播放| 亚洲色图五月天| 国产一区二区三区免费视频| 欧美国产日韩中文字幕在线| 欧美大肥婆大肥bbbbb| 国产丝袜一区视频在线观看| 亚洲第一区中文字幕| 日韩欧美成人精品| 在线观看中文字幕亚洲| 久久网福利资源网站| 亚洲国产小视频| 欧美极品美女电影一区| 久久久久久久久久久免费精品| 亚洲欧美中文在线视频| 九九热在线精品视频| 蜜臀久久99精品久久久无需会员| 91色视频在线导航| 色偷偷噜噜噜亚洲男人的天堂| 北条麻妃一区二区三区中文字幕| 国产视频欧美视频| 国产激情久久久久| 色狠狠久久aa北条麻妃| 国产日韩欧美黄色| 精品一区二区三区三区| 96国产粉嫩美女| 中文字幕av一区二区| 欧美性高潮在线| 亚洲精品欧美一区二区三区| 日韩在线观看高清| 欧美日韩在线一区| 欧美最猛黑人xxxx黑人猛叫黄| 一区二区三区四区在线观看视频| 亚洲bt天天射| 久久精品色欧美aⅴ一区二区| 一区二区三区视频在线| 久久久久久久91| 日韩精品视频免费| 国产成人涩涩涩视频在线观看| 欧美高清一级大片| 亚洲成人在线视频播放| 国产美女扒开尿口久久久| 日韩中文字幕网站| 18一19gay欧美视频网站| 伊人伊成久久人综合网站| 国产人妖伪娘一区91|