字典翻译 问答 高中 数学 【算术表达式转化成逆波兰式(C语言)问题描述:编写程序实现将输入的数学表达式转换成后缀式(逆波兰式),并对后缀式进行计算,输出得到的值。测试数据:输入3*(7-5)+(4+8)/3#输出375-*48+3/+#】
问题标题:
【算术表达式转化成逆波兰式(C语言)问题描述:编写程序实现将输入的数学表达式转换成后缀式(逆波兰式),并对后缀式进行计算,输出得到的值。测试数据:输入3*(7-5)+(4+8)/3#输出375-*48+3/+#】
问题描述:

算术表达式转化成逆波兰式(C语言)问题描述:编写程序实现将输入的数学表达式转换成后缀式(逆波兰式),并对后缀式进行计算,输出得到的值。测试数据:输入3*(7-5)+(4+8)/3#输出375-*48+3/+#10

刘景泰回答:
  你可以扩展一下。//中缀表达式转化为后缀表达式,仅支持加减乘除运算、操作数为1位十进制非负整数的表达式。char*infix2postfix(constchar*infix,char*postfix){constsize_tN=strlen(infix);if(N==0||postfix==NULL){returnpostfix;}stack<char>opcode(N);//堆栈存放的是操作符for(size_ti=0;i<N;i++){switch(infix[i]){case'('://直接忽略左括号break;case')'://弹出操作符*postfix++=opcode.pop();*postfix++='';break;case'+':case'-':case'*':case'/':opcode.push(infix[i]);//压入操作符break;default:if(isdigit(infix[i]))//如果是数字,直接输出{*postfix++=infix[i];*postfix++='';}}}returnpostfix;}
点击显示
数学推荐
热门数学推荐
  • 语文
  • 数学
  • 英语
  • 政治
  • 地理
  • 历史
  • 化学
  • 生物
  • 物理
  • 综合
  • 高考