#include <iostream>
#include <stack>
#include <cmath>
#include <string>
using namespace std;
stack <double>NumStack;
stack <char>CharStack;
bool charFlag = 1;
int intFlag = 1;
int checkPriority(char c)
{
if (c == '+' || c == '-')
{
return 1;
}
if (c == '*' || c == '/')
{
return 2;
}
if (c == '^')
{
return 3;
}
return 0;
}
void printError()
{
system("cls");
cout << "ERROR" << endl;
}
int main()
{
string s;
cin >> s;
CharStack.push('#');
for (int i = 0; i < s.size();)
{
int flag = 0,pointNum=0,time=-1;
double x=0;
while ((s[i] >= '0'&&s[i] <= '9') || (s[i]=='.'))
{
if (s[i]=='.')
{
pointNum++;
i++;
}
else
{
if (pointNum==0)
{
x = x * 10 + (s[i] - '0');
flag = 1;
i++;
}
if (pointNum==1)
{
x = x + (s[i] - '0')*pow(10, time);
time--;
flag = 1;
i++;
}
if (pointNum >= 2)
中缀表达式求值(C++)
最新推荐文章于 2022-10-19 16:16:40 发布