c 演示表示式的運算過程

2021-08-09 08:51:22 字數 924 閱讀 6494

設乙個判斷運算子優先順序的函式 char precede(char a, char b);

根據運算子的不同,自然有不同操作 int operate(int a, char theta, int b);

不同運算子間的如下優先順序:

實現**如下:

# include# includeusing namespace std;

int operate(int a, char theta, int b);

char precede(char a, char b);

int main()

continue;

} while (ch >= '0'&&ch <= '9')

if (byte_flag)

}if (result_flag)

cout << "表示式最終結果為:" << operands.top() << endl;

return 0;

}int operate(int a, char theta, int b) // 執行 a operater b

char precede(char a, char b)//比較兩個運算子的優先順序,a運算子在b左邊

else if (a == '*' || a == '/')

else if (a == '(') }

else if (a == ')') }

else if (a == '#')

else if (b == '#')

return '=';

else

return '

}}

棧在表示式計算過程中的應用

棧在表示式計算過程中的應用 建立運算元棧和運算子棧。運算子有優先順序。規則 自左至右掃瞄表示式,凡是遇到運算元一律進運算元棧。當遇到運算子時,如果它的優先順序比運算子棧棧頂元素的優先順序高就進棧。反之,取出棧頂運算子和運算元棧棧頂的連續兩個運算元進行運算,並將結果存入運算元棧,然後繼續比較該運算子與...

C 運算子表示式

1 表示式概念 2 數 算符 3 運算子結果型別判定 4 賦值運算子 5 運算子優先順序 括號 乘除餘模 加減 6 布林運算子 7 運算子練習 using system namespace 運算子表示式 減 乘 除 餘 plus,less,multiply,except,remain int型別和d...

模板 表示式運算

這些都是emmmm 給出乙個表示式,其中運算子僅包含 要求求出表示式的最終值資料可能會出現括號情況 還有可能出現多餘括號情況資料保證不會出現 maxlongint的資料。資料可能回出現負數情況 2 2 1 1 16真的是超級麻煩emmmm,今天考試的時候看了看接著就棄了。說實話這個真不應該棄掉,但是...