




全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C+中要表達(dá)四則運(yùn)算,最主要就是字符轉(zhuǎn)換的問題,我提供的思路如下一個(gè)string變量中的字串是這種形式的,其中每一個(gè)都是字符變量String(34+6)*5=要怎么變成我們轉(zhuǎn)化成能計(jì)算的式子呢?我是這樣想的:先將string中的每個(gè)字符都配上標(biāo)識(shí),表明它是數(shù)值還是符號(hào)(1代表符號(hào),0代表數(shù)值)(34+6)*5=100101101這樣我就會(huì)知道每一位對(duì)應(yīng)的是什么然后我們重新設(shè)置一個(gè)整形數(shù)組newstr來存放這個(gè)string關(guān)于這個(gè)轉(zhuǎn)化,我的想法如下:如果本來是符號(hào),則轉(zhuǎn)化成數(shù)值存入newstr并標(biāo)識(shí)上1表明他是運(yùn)算符;如果有兩個(gè)0的情況,說明他們應(yīng)該是一個(gè)數(shù)字,則把他們合并存入newstr并標(biāo)識(shí)上0;然后就會(huì)得到如下的兩個(gè)數(shù)組(34+6)*5=4034436414256110101101第二行是newstr中的值第三行是標(biāo)識(shí)數(shù)組中的值然后呢之后轉(zhuǎn)化后綴表達(dá)式就是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容了看看書就可以啦這是目前我想出來的還算過的去的想法了,如果有大神,請別吐槽,一個(gè)晚上的結(jié)晶啊#include #include using namespace std;bool IsChar(char c)if (0=c&c=9) return 0;else return 1;int main()string s;/存儲(chǔ)用戶輸入的式子cout 請輸出表達(dá)式(務(wù)必以等號(hào)結(jié)束)endl;cout s;int newstr100;/用來存儲(chǔ)轉(zhuǎn)化后的表達(dá)式int arr100;/標(biāo)志數(shù)組:用來標(biāo)識(shí)newstr中每個(gè)元素對(duì)應(yīng)的是數(shù)據(jù)還是運(yùn)算符,若是數(shù)據(jù),對(duì)應(yīng)位置為0,反之為1int i = 0;/對(duì)s中的內(nèi)容進(jìn)行索引while(si!=)arri = IsChar(si); i+;/如果是字符,arr對(duì)應(yīng)位置標(biāo)1;數(shù)據(jù)則標(biāo)0i = 0;/對(duì)s中的內(nèi)容進(jìn)行索引int n = 0; /存儲(chǔ)新的字符串的字符下標(biāo)while(si!=)/此循環(huán)將s中字符串轉(zhuǎn)化成數(shù)值形式存儲(chǔ)在newstr中,并用arr數(shù)組標(biāo)識(shí)每一位是數(shù)據(jù)還是字符if (arri=1)/如果是字符,轉(zhuǎn)化成數(shù)值后直接放進(jìn)newstr,并在arr的對(duì)應(yīng)位置標(biāo)識(shí)上1newstrn = int(si); arrn = 1; n+; i+;else/如果不是字符,轉(zhuǎn)化成十進(jìn)制數(shù)據(jù)后存入newstr,并在arr對(duì)應(yīng)位置標(biāo)識(shí)上0if(i = 0)/如果第一位就是數(shù)值,直接存入newstrn = int(si) - 48;arrn = 0;n+; i+;else if(arri-1=0)/如果之前一個(gè)字符也是數(shù)字,將此數(shù)據(jù)與之前數(shù)據(jù)合并,例如字符串“90”轉(zhuǎn)化成整型90后存入,并標(biāo)識(shí)上0newstrn-1 = 10 * newstrn-1 + int(si) - 48;arrn-1 = 0;i+;elsenewstrn = int(si) - 48;arrn = 0;n+; i+;newstrn = -1;arrn=1;/新字符串結(jié)束標(biāo)記/*/此部分用來打印轉(zhuǎn)化后的newstr及其標(biāo)識(shí)數(shù)組arrint i = 0;while(newstri!=-1)coutnewstrit;i+;coutendl;i = 0;while(newstri!=-1)coutarrit;i+;coutendl;*/i = 0;/用來索引newstr中的數(shù)據(jù)int stack1100;/用來存儲(chǔ)后綴表達(dá)式int k=0;/stack1的索引int stack2100;/用來臨時(shí)存儲(chǔ)符號(hào)int m=0;/stack2的索引while(newstri!=-1)/此循環(huán)將newstr轉(zhuǎn)化成后綴表達(dá)式并存入stack1中;轉(zhuǎn)化步驟參考數(shù)據(jù)結(jié)構(gòu)棧if(arri=0)stack1k=newstri;arrk=0;k+;i+;elseif(m=0 | newstri=40)/40代表左括號(hào),可直接放入stack2;stack2m=newstri;m+;i+;elseswitch(newstri)case 41: while(stack2m-1!=40) /)stack1k=stack2m-1;arrk=1;m-;k+;m-;i+;break;case 43:while(stack2m-1!=40 & m!=0)/+stack1k=stack2m-1;arrk=1;m-;k+;stack2m=newstri;m+;i+;break;case 45:while(stack2m-1!=40 & m!=0)/-stack1k=stack2m-1;arrk=1;m-;k+;stack2m=newstri;m+;i+;break;case 42:while(stack2m-1=42 | stack2m-1=47) & m!=0 )/*stack1k=stack2m-1;arrk=1;m-;k+;stack2m=newstri;m+;i+;break;case 47:while(stack2m-1=42 | stack2m-1=47) & m!=0)/stack1k=stack2m-1;arrk=1;m-;k+;stack2m=newstri;m+;i+;break;for(m;m!=0;m-)/將stack2中剩余的符號(hào)依次出棧存入stack1;stack1k+=stack2m-1;arrk-1=1;stack1k=-1;/stack1的結(jié)束標(biāo)記,也就是后綴表達(dá)式的結(jié)束標(biāo)記k = 0;/打印后綴表達(dá)式cout 后綴表達(dá)式為:;while(stack1k!=-1)if(arrk=0)coutstack1k ;elsecoutchar(stack1k) ;k+;coutendl;int stack3100;/臨時(shí)棧,計(jì)算后綴表達(dá)式時(shí)用到k = 0;i = 0;while(stack1i!=-1)if(arri=0)stack3k=stack1i;k+;i+;elseswitch(stack1i)case 43:stack3k-2=stack3k-1+stack3k-2;k-;i+;break;case 45:stack3k-2=stack3k-1-stack3k-2;k-;i+;brea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售各種大棚管理辦法
- 民營企業(yè)研究室管理辦法
- 深圳道路架空線管理辦法
- 小組團(tuán)援疆工作管理辦法
- 醫(yī)院《自媒體管理辦法》
- 東城區(qū)房屋管理辦法細(xì)則
- 市歷史名園保護(hù)管理辦法
- 深圳母嬰店經(jīng)營管理辦法
- 商業(yè)培訓(xùn)中的心理調(diào)適技巧探討
- 湖北省孝感市孝南區(qū)2024年物理八年級(jí)第一學(xué)期期末監(jiān)測模擬試題含解析
- 廣東深圳市南山區(qū)機(jī)關(guān)事業(yè)單位面向高校畢業(yè)生招聘編外人員104人歷年重點(diǎn)基礎(chǔ)提升難、易點(diǎn)模擬試題(共500題)附帶答案詳解
- 放化療相關(guān)口腔黏膜炎預(yù)防及護(hù)理課件
- 北京市海淀區(qū)2025屆高一下生物期末檢測模擬試題含解析
- JT∕T 795-2023 事故汽車修復(fù)技術(shù)規(guī)范
- 2024四川廣元市檢察機(jī)關(guān)招聘聘用制書記員22人筆試備考題庫及答案解析
- 內(nèi)科患者VTE風(fēng)險(xiǎn)評(píng)估表
- 一年級(jí)上冊美術(shù)教案-第1課 讓大家認(rèn)識(shí)我:誠實(shí)最好 ▏人美版
- 科學(xué)認(rèn)識(shí)天氣智慧樹知到期末考試答案2024年
- (高清版)DZT 0064.15-2021 地下水質(zhì)分析方法 第15部分:總硬度的測定 乙二胺四乙酸二鈉滴定法
- 心理體檢收費(fèi)目錄
- 雅魯藏布江米林-加查段沿線暴雨泥石流危險(xiǎn)度評(píng)價(jià)的中期報(bào)告
評(píng)論
0/150
提交評(píng)論