




全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C+中要表達四則運算,最主要就是字符轉(zhuǎn)換的問題,我提供的思路如下一個string變量中的字串是這種形式的,其中每一個都是字符變量String(34+6)*5=要怎么變成我們轉(zhuǎn)化成能計算的式子呢?我是這樣想的:先將string中的每個字符都配上標(biāo)識,表明它是數(shù)值還是符號(1代表符號,0代表數(shù)值)(34+6)*5=100101101這樣我就會知道每一位對應(yīng)的是什么然后我們重新設(shè)置一個整形數(shù)組newstr來存放這個string關(guān)于這個轉(zhuǎn)化,我的想法如下:如果本來是符號,則轉(zhuǎn)化成數(shù)值存入newstr并標(biāo)識上1表明他是運算符;如果有兩個0的情況,說明他們應(yīng)該是一個數(shù)字,則把他們合并存入newstr并標(biāo)識上0;然后就會得到如下的兩個數(shù)組(34+6)*5=4034436414256110101101第二行是newstr中的值第三行是標(biāo)識數(shù)組中的值然后呢之后轉(zhuǎn)化后綴表達式就是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容了看看書就可以啦這是目前我想出來的還算過的去的想法了,如果有大神,請別吐槽,一個晚上的結(jié)晶啊#include #include using namespace std;bool IsChar(char c)if (0=c&c=9) return 0;else return 1;int main()string s;/存儲用戶輸入的式子cout 請輸出表達式(務(wù)必以等號結(jié)束)endl;cout s;int newstr100;/用來存儲轉(zhuǎn)化后的表達式int arr100;/標(biāo)志數(shù)組:用來標(biāo)識newstr中每個元素對應(yīng)的是數(shù)據(jù)還是運算符,若是數(shù)據(jù),對應(yīng)位置為0,反之為1int i = 0;/對s中的內(nèi)容進行索引while(si!=)arri = IsChar(si); i+;/如果是字符,arr對應(yīng)位置標(biāo)1;數(shù)據(jù)則標(biāo)0i = 0;/對s中的內(nèi)容進行索引int n = 0; /存儲新的字符串的字符下標(biāo)while(si!=)/此循環(huán)將s中字符串轉(zhuǎn)化成數(shù)值形式存儲在newstr中,并用arr數(shù)組標(biāo)識每一位是數(shù)據(jù)還是字符if (arri=1)/如果是字符,轉(zhuǎn)化成數(shù)值后直接放進newstr,并在arr的對應(yīng)位置標(biāo)識上1newstrn = int(si); arrn = 1; n+; i+;else/如果不是字符,轉(zhuǎn)化成十進制數(shù)據(jù)后存入newstr,并在arr對應(yīng)位置標(biāo)識上0if(i = 0)/如果第一位就是數(shù)值,直接存入newstrn = int(si) - 48;arrn = 0;n+; i+;else if(arri-1=0)/如果之前一個字符也是數(shù)字,將此數(shù)據(jù)與之前數(shù)據(jù)合并,例如字符串“90”轉(zhuǎn)化成整型90后存入,并標(biāo)識上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ù)組arrint i = 0;while(newstri!=-1)coutnewstrit;i+;coutendl;i = 0;while(newstri!=-1)coutarrit;i+;coutendl;*/i = 0;/用來索引newstr中的數(shù)據(jù)int stack1100;/用來存儲后綴表達式int k=0;/stack1的索引int stack2100;/用來臨時存儲符號int m=0;/stack2的索引while(newstri!=-1)/此循環(huán)將newstr轉(zhuǎn)化成后綴表達式并存入stack1中;轉(zhuǎn)化步驟參考數(shù)據(jù)結(jié)構(gòu)棧if(arri=0)stack1k=newstri;arrk=0;k+;i+;elseif(m=0 | newstri=40)/40代表左括號,可直接放入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中剩余的符號依次出棧存入stack1;stack1k+=stack2m-1;arrk-1=1;stack1k=-1;/stack1的結(jié)束標(biāo)記,也就是后綴表達式的結(jié)束標(biāo)記k = 0;/打印后綴表達式cout 后綴表達式為:;while(stack1k!=-1)if(arrk=0)coutstack1k ;elsecoutchar(stack1k) ;k+;coutendl;int stack3100;/臨時棧,計算后綴表達式時用到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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目簽約協(xié)議書范本
- 草場租賃與生態(tài)補償機制協(xié)議
- 企業(yè)車輛事故責(zé)任免除與賠償協(xié)議
- 青島商鋪租賃協(xié)議書范本
- 綠色節(jié)能彩鋼活動房安裝施工安全保證合同
- 高端公寓租賃管理合同范本
- 中外合資餐飲品牌開發(fā)與推廣協(xié)議
- 草籽種植補貼與購銷保障合同
- 橋梁模態(tài)分析試驗專題報告
- 餐飲部管理運轉(zhuǎn)手冊
- 高中生物學(xué)業(yè)水平合格性考試:人教版必修1+必修2必背考點
- 安全生產(chǎn)應(yīng)急演練方案(合集)
- 2025江蘇揚州寶應(yīng)縣“鄉(xiāng)村振興青年人才”招聘67人筆試模擬試題含答案詳解
- 2025年甘肅高考真題化學(xué)試題(解析版)
- 中國政法大學(xué)《中國政治制度史》2023-2024學(xué)年第二學(xué)期期末試卷
- 超高玻璃吊裝方案(3篇)
- 2025年中考物理壓軸題分類匯編:單選題(電功率和電與磁綜合49題)原卷版+解析
- 東航j(luò)ava面試題及答案編程
- 醫(yī)學(xué)影像讀片試題及答案
- API RP 1175-2022 管道泄漏檢查計劃管理
- 縫紉車間安全培訓(xùn)課件
評論
0/150
提交評論