freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

算數(shù)表達(dá)式的求解課程設(shè)計(jì)報(bào)告(編輯修改稿)

2024-10-01 22:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 break。 case 39。=39。: Pop(amp。StackR)。 i++。 break。 case 39。39。: //棧頂?shù)膬?yōu)先級(jí)高則出棧, 并將計(jì)算結(jié)果壓入棧內(nèi) r = Pop(amp。StackR)。 a = Pop(amp。StackD)39。039。 //操作數(shù)在棧內(nèi)以 ascii 的形式存儲(chǔ),出站后要將ascii轉(zhuǎn)化為整型,然后進(jìn)行運(yùn)算 b = Pop(amp。StackD)39。039。 Push(amp。StackD,Operate(a,r,b)) 。 break。 } } return (GetTop(amp。StackD)39。039。)。 // 將棧頂元素轉(zhuǎn)化為整型的形式輸出 } 對(duì)于表達(dá)式求解函數(shù),在程序中主要思想是對(duì)讀入的表達(dá)式進(jìn)棧進(jìn)行判斷。若讀入的是‘ 0’到‘ 9’之間的字符,將這些字符采用 ascii相減的形式轉(zhuǎn)化為整型,再入 opnd棧,若讀入的字符為運(yùn)算符,則將運(yùn)算符入棧,并比較運(yùn)算符之間的優(yōu)先級(jí),看是否運(yùn)算,若棧頂?shù)倪\(yùn)算符小于當(dāng)前輸入的運(yùn)算符,則不需 運(yùn)算,只要將當(dāng)前運(yùn)算符入棧即可。否則,運(yùn)算。運(yùn)算時(shí)先將 optr棧的棧頂運(yùn)算符和 opnd棧的棧頂、次棧頂元素出棧,并將 opnd 棧中出棧的元素的 ASCII形式轉(zhuǎn)化為整型再計(jì)算,最后講計(jì)算結(jié)果再轉(zhuǎn)化為 ASCII碼的形式壓入 opnd棧中。使表達(dá)式求解函數(shù)返回值為 opnd的棧頂元素。 上級(jí)調(diào)試過程 遇到問題以及解決方案 問題 調(diào)試時(shí)沒有錯(cuò)誤,但運(yùn)行時(shí)顯示錯(cuò)誤。 解決方案:通過它提示的錯(cuò)誤和警告,在判斷是否為運(yùn)算符的子函數(shù)中出現(xiàn)錯(cuò)誤,如果為運(yùn)算符時(shí)返回 1,其次返回 0,在返回 0時(shí)沒有用 else,這樣使得整個(gè) 子函數(shù)可以返回一個(gè)有效值。 問題 調(diào)試時(shí)程序顯示沒有錯(cuò)誤,可以運(yùn)行,但在運(yùn)行時(shí)結(jié)果卻出現(xiàn)錯(cuò)誤。 解決方案:把程序從頭看了一遍,發(fā)現(xiàn)在比較優(yōu)先級(jí)的函數(shù)中,優(yōu)先級(jí)的比較比較亂,而且部分出錯(cuò),后來(lái)查了關(guān)于運(yùn)算符優(yōu)先級(jí)的資料,通過在紙上把各種優(yōu)先級(jí)列出,解決這個(gè)錯(cuò)誤。 算法的時(shí)間復(fù)雜度 由于在主函數(shù)用到嵌套循環(huán),故算法的時(shí)間復(fù)雜度為 O( n^2)。 測(cè)試結(jié)果及其分析 ( 1)、 實(shí)現(xiàn)基本的加減乘除運(yùn)算,當(dāng)想要繼續(xù)輸入表達(dá)式時(shí)點(diǎn)擊 enter鍵,若要結(jié)束,點(diǎn)擊 n或 N鍵即可,而且可實(shí)現(xiàn)多位數(shù)的運(yùn)算。 ( 2) 、實(shí)現(xiàn)復(fù)雜的算術(shù)表達(dá)式 ( 3) 、錯(cuò)誤表達(dá)式的處理 用戶使用說明 ( 1)本程序執(zhí)行的文件為“算數(shù)表達(dá)式的求解問題”。 ( 2)所求表達(dá)式中都只是僅包含加、減、乘、除 4種基本運(yùn)算的,其中也包含括號(hào)的應(yīng)用,所有的運(yùn)算對(duì)象均為簡(jiǎn)單變量,要求將表達(dá)式中的數(shù)字字符轉(zhuǎn)化為整型,且輸入表達(dá)式以“ ”結(jié)束。 ( 3)輸入表達(dá)式時(shí),以‘ ’結(jié)束,當(dāng)點(diǎn)擊回車鍵時(shí)即可得到運(yùn)算結(jié)果,當(dāng)想繼續(xù)輸入表達(dá)式時(shí),再次點(diǎn)擊回車鍵即可,當(dāng)想結(jié)束時(shí),點(diǎn)擊字母 ‘ n’或‘ N’。 ( 4)當(dāng)輸入錯(cuò)誤表達(dá)式時(shí),程序會(huì)給出相應(yīng)的提醒。 參考文獻(xiàn) ( 1)王昆侖 、李紅主編 , 數(shù)據(jù)結(jié)構(gòu)與算法,北京:中國(guó)鐵道出版社, 2020年 5月 ( 2)阮宏一 、魯靜主編 , 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)( C/C++描述) , 北京:電子工業(yè)出版社, 2020年 1月 附錄(源程序) : include include define MAXSIZE 16 typedef struct { int data[MAXSIZE]。 int top。 int base。 //棧低 }Stack。 // 順序棧的定義 //以下為函數(shù)聲明 void InitStack(Stack *)。 //初始化棧 int Empty(Stack *)。 //判空棧 void Push(Stack *, int )。 //進(jìn)棧 int Pop(Stack *)。//出棧 int GetTop(Stack *)。 //取棧頂元素 int Operate(int ,char ,int )。 // 計(jì)算結(jié)果 char Proceed(char ,char )。 // 比較優(yōu)先級(jí) int In(char )。 //判斷輸入符 int EvalExpres(void)。 //表達(dá)式計(jì)算函數(shù) // 定義兩個(gè)棧分別存放運(yùn)算符和操作數(shù) Stack StackR,StackD。 int main()//主函數(shù) { int v。 char ch。 while(1) { printf(\t************歡迎使用算術(shù)表達(dá)式的求解的小程序 ************\n)。 v = EvalExpres()。 printf(\t表達(dá)式的計(jì)算結(jié)果為 :%d,v)。 printf(\n\tInput 39。n39。 to quit and ENTER run again:)。 do { scanf(%c,amp。ch)。 if(ch == 39。n39。 || ch == 39。N39。) exit(0)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1