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

正文內容

北理工數據結構實驗報告(編輯修改稿)

2024-08-30 02:12 本頁面
 

【文章內容簡介】 n ERROR。 else return 39。39。break。 default: return ERROR。break。//其他情況,表達式有誤 }}// Precedeint Operation(int a,char theta,int b){ //運算函數 switch(theta){ case39。+39。:return a+b。break。 case39。39。:return ab。break。 case39。*39。:return a*b。break。 case39。/39。:return a/b。break。 case39。%39。:return a%b。break。 case39。^39。:return pow(a,b)。break。 default:return ERROR。break。 }}//Operationint EvaluateExpression(char p[]){ //主要操作函數 int a,b,t。char x,theta,temp[10]。 char* num=temp。char* ex=p。//聲明指針 InitStack1(OPTR)。Push1(OPTR,39。=39。)。 InitStack2(OPND)。char c=*p。 while(c!=39。=39。||GetTop1(OPTR)!=39。=39。){ if(!In(c,OP)){//不是運算符進數組 *(num++)=c。c=*(++ex)。 if(In(c,OP)){//是運算符將數組壓入棧 *num=39。\039。 t=atoi(temp)。 //將temp數組轉化為整型數 num=temp。//指針指回數組頭元素 Push2(OPND,t)。 } } else switch(Precede(GetTop1(OPTR),c)){ case 39。39。://棧頂元素優(yōu)先級低 Push1(OPTR,c)。c=*(++ex)。 break。 case 39。=39。://脫括號并接受下一字符 Pop1(OPTR,x)。c=*(++ex)。 break。 case 39。39。://運算并將結果入棧 Pop1(OPTR,theta)。 Pop2(OPND,b)。Pop2(OPND,a)。 Push2(OPND,Operation(a,theta,b))。 break。 } } return GetTop2(OPND)。返回操作數棧頂元素}// EvaluateExpression(3)、主函數設計int main(){ //主函數 int result。char expression[100]。 //聲明表達式數組 printf(Please input the expression:)。 gets(expression)。 //輸入數組 result=EvaluateExpression(expression)。 printf(the result is :%d\n,result)。//輸出結果 return 0。}四、程序調試分析 開始時,使用getchar函數輸入,但其有較大的弊端,只能輸入09之間的整數,不能實現多位數及小數的計算。于是換為gets函數,將表達式作為整體存入數組中待處理。第一個問題解決后,出現了第二個問題:數據結構混亂。由于gets函數得到的是char型,直接存入操作數棧后,以ASCII碼形式存入,使得編譯通過但運行結果錯誤。后來分析原因后,引入暫存數組,利用atoi函數,將數組中的數轉化為整型,解決了這一問題。在設計主要處理函數時,出現了多次編譯錯誤。后發(fā)現是由于指針指向混亂造成。這主要是自己的思路不清,導致程序混亂。后仔細繪制了流程圖,詳盡的分析了過程后,解決了該問題。五、用戶使用說明 本程序的運行環(huán)境為DOS操作系統(tǒng),執(zhí)行文件為:。進入程序后,在Please input the expression:后輸入待求表達式,以“=”結尾,并敲回車。 程序運行后即在屏幕上輸出計算結果。六、程序運行結果 七、程序清單define STACK_INIT_SIZE 100define
點擊復制文檔內容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1