char evaluateexpression()else
c=getchar();
gettop(optr,&e);
} else
} } gettop(opnd,&e);
return e;
}
核心演算法如圖所示,基本思想是利用棧的基本性質和操作(數棧和算符棧兩棧分開),結合算符優先順序順序的二維陣列定義,完成基本算數表示式的核心演算法結構的**。
但是該演算法存在乙個很大的問題,即數棧採用了char型為基本單位,這就導致了在順序棧中可以存放的數值大小十分有限,稍微大一點的數都無法計算,所以考慮採用將數棧中的元素以int型進行儲存,但是這又導致了定義的所有棧的基本操作需要寫兩遍,才能匹配上不同型別的元素進行操作。兩種方法都有弊端。
簡單表示式求值(只有 )
題目如下 輸入僅有一行,為需要你計算的表示式,表示式中只包含數字 加法運算子 和乘法運算子 且沒有括號,所有參與運算的數字均為 0 到 2 31 1 之間的整數。輸入資料保證這一行只有 0 9 這 12 種字元。輸出格式 輸出只有一行,包含乙個整數,表示這個表示式的值。注意 當答案長度多於 4 位時...
簡單算術表示式求值
題目 利用cin,getline將輸入分成前半部分和後半部分,便於操作 例如 32 3 分成數字部分 32字串部分 3 include using namespace std intmain re num n break else if s i re n num break else if s i ...
簡單算術表示式求值
兩位正整數的簡單算術運算 只考慮整數運算 算術運算為 加法運算 減法運算 乘法運算 整除運算 取餘運算。算術表示式的格式為 運算子前後可能有空格 運算數 運算子 運算數請輸出相應的結果。一行算術表示式。整型算數運算的結果 結果值不一定為2位數,可能多於2位或少於2位 32 64 96 include...