求助!!!!!!!100分
int Change(const char *S,char NUM[],int &len)//中缀表达式转后缀表达式
{
QStack<char> OP;
int i,j=0;
for (i = 0; i < strlen(S); i++)
{
switch (S[i])
{
case'+':
if(OP.isEmpty())
OP.push(S[i]);
else if (OP.top() == '*' || OP.top() == '/')//如果栈顶的运算符优先级比+高
{
NUM[j++] = OP.pop();//将优先级高的运算符出栈
i--;//目的是继续比较加号与OP栈中剩下的操作符的优先级的高低
}
else
OP.push(S[i]);
break;
case'-':
if('('!=S[i-1]&&0!=i)//如果负号前面不是左括号且符号不是表达式第一个元素
{
if(OP.isEmpty())//如果负号前面不是左括号且符号不是表达式第一个元素+如果存放运算符的栈是空的
{
OP.push(S[i]);
}//把符号压进OP栈中
else if (OP.top() == '*' || OP.top() == '/')//如果负号前面不是左括号且符号不是表达式第一个元素+若OP不空+栈中顶元素是乘号或除号
{
NUM[j++] = OP.pop();//将OP栈中顶元素赋值给输出的字符数组,NUM数组往后移一位
i--;
}
else//如果负号前面不是左括号且符号不是表达式第一个元素+若OP不空+栈中顶元素不是乘号或除号
{
OP.push(S[i]);
}
}
else//当减号是表达式的首元素e:-13+5或者减号当负号用时eg:1+(-4)
{
while ((S[i] >= '0'&&S[i] <= '9' )|| S[i] == '.'||('-'==S[i]&&(S[i-1]<'0'||S[i-1]>'9')))
{
NUM[j++] = S[i];
if('-'==S[i])
NUM[j++]='@';
i++;
}
i--;
NUM[j++] = '#'; //数字中的间隔符
}
break;
s[i]等于减号的时候 为什么下面红色语句还要来判断s[i]的取值啊 他这个判断语句不就是在s[i]等于减号的情况下才执行的吗???????
{
QStack<char> OP;
int i,j=0;
for (i = 0; i < strlen(S); i++)
{
switch (S[i])
{
case'+':
if(OP.isEmpty())
OP.push(S[i]);
else if (OP.top() == '*' || OP.top() == '/')//如果栈顶的运算符优先级比+高
{
NUM[j++] = OP.pop();//将优先级高的运算符出栈
i--;//目的是继续比较加号与OP栈中剩下的操作符的优先级的高低
}
else
OP.push(S[i]);
break;
case'-':
if('('!=S[i-1]&&0!=i)//如果负号前面不是左括号且符号不是表达式第一个元素
{
if(OP.isEmpty())//如果负号前面不是左括号且符号不是表达式第一个元素+如果存放运算符的栈是空的
{
OP.push(S[i]);
}//把符号压进OP栈中
else if (OP.top() == '*' || OP.top() == '/')//如果负号前面不是左括号且符号不是表达式第一个元素+若OP不空+栈中顶元素是乘号或除号
{
NUM[j++] = OP.pop();//将OP栈中顶元素赋值给输出的字符数组,NUM数组往后移一位
i--;
}
else//如果负号前面不是左括号且符号不是表达式第一个元素+若OP不空+栈中顶元素不是乘号或除号
{
OP.push(S[i]);
}
}
else//当减号是表达式的首元素e:-13+5或者减号当负号用时eg:1+(-4)
{
while ((S[i] >= '0'&&S[i] <= '9' )|| S[i] == '.'||('-'==S[i]&&(S[i-1]<'0'||S[i-1]>'9')))
{
NUM[j++] = S[i];
if('-'==S[i])
NUM[j++]='@';
i++;
}
i--;
NUM[j++] = '#'; //数字中的间隔符
}
break;
s[i]等于减号的时候 为什么下面红色语句还要来判断s[i]的取值啊 他这个判断语句不就是在s[i]等于减号的情况下才执行的吗???????
...全文
相关推荐
100RMB,求助中兴U31的IDL
100RMB,求助中兴U31的IDL;
PT100热电阻分值表
铂的电阻值随温度的变化呈现出稳定且可预测的关系,而PT100得名于其在0℃时具有100欧姆电阻的特性。然而,为了精确地获得温度值,就需要依靠PT100热电阻分值表这一工具。
java逻辑题目谁是100分
已知4位同学中的一位编程考了100分,当小王询问这4位是谁考了100分时,4个人的回答如下:甲说:不是我。乙说:是丙丙说:是丁。丁说:他胡说。已知三个人说的是真话,一个人说的是假话。现在要根据这些信息
云客服100分考试答案.pdf
云客服100分考试答案知识点总结 обла客服100分考试答案涵盖了电商平台的各种交易状态、订单管理、支付宝账户管理、账户认证等方面的知识点。
因病致贫有高额救助,可向100多个机构求助,你知吗.docx
【教育】领域的文章:标题和描述提及的"因病致贫有高额救助,可向100多个机构求助",是指在面临重大疾病导致经济困难的情况下,社会上有超过一百个公益慈善机构提供援助,帮助患者减轻经济负担。


