算术表达式求值设计一个程序,利用栈实现算术表达式的求值要求:(1)以字符串形式输入语法正确算术表达式,参与运算的操作数为整数,运算符只包括+,-,*,/,可包含小括号();(2)计算算术

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 22:56:31
算术表达式求值设计一个程序,利用栈实现算术表达式的求值要求:(1)以字符串形式输入语法正确算术表达式,参与运算的操作数为整数,运算符只包括+,-,*,/,可包含小括号();(2)计算算术

算术表达式求值设计一个程序,利用栈实现算术表达式的求值要求:(1)以字符串形式输入语法正确算术表达式,参与运算的操作数为整数,运算符只包括+,-,*,/,可包含小括号();(2)计算算术
算术表达式求值
设计一个程序,利用栈实现算术表达式的求值
要求:
(1)以字符串形式输入语法正确算术表达式,参与运算的操作数为整数,运算符只包括+,-,*,/,可包含小括号();
(2)计算算术表达式的值.
(使用C语言编写)
有三个错误啊!getch()是怎么回事?

算术表达式求值设计一个程序,利用栈实现算术表达式的求值要求:(1)以字符串形式输入语法正确算术表达式,参与运算的操作数为整数,运算符只包括+,-,*,/,可包含小括号();(2)计算算术
/*改了一下,你看看行不,这不是在TC的环境下编的,我尽量用TC中的库函数,有什么问题再提*/
/*getch()相当于getchar(),只不过输入的时候不回显到屏幕上*/
/*如果还有错误,把错误贴出来,或者发消息给我,我好改*/
#include
#include
#include
#include
#include
#define N 100
double numStack[N]={0};
int numTop;
char opStack[N];
int opTop;
int op(char ch)
{
if(ch=='+'||ch=='-') return 2;
if(ch=='*'||ch=='/') return 3;
if(ch=='(') return -1;
return 0;
}
double result(double num1,char op,double num2)
{
if(op=='+') return num1+num2;
if(op=='-') return num1-num2;
if(op=='*') return num1*num2;
if(op=='/') return num1/num2;
return 0;
}
int compute(char str[])
{
double num=0;
int i=0,j=1,k=1;
int Flag=0;
numTop=opTop=0;
while(str[i]!='\0'||opTop>0)
{
if(str[i]>='0'&&str[i]0&&!op(str[i-1])&&str[i]!='('&&str[i-1]!=')')
{
numStack[numTop++]=num*k;
num=0; j=1; Flag=0; k=1;
}
if(opTop==0||str[i]=='(')
opStack[opTop++]=str[i];
else
if(str[i]==')')
{
while(opTop>0&&opStack[--opTop]!='(')
{
numStack[numTop-2]=result(numStack[numTop-2],opStack[opTop],numStack[numTop-1]);
numTop--;
}
if(opStack[opTop]!='(') return 0;
}
else
{
if(str[i]=='\0'&&numTop==0) return 0;
while(opTop>0&&op(str[i])='0'&&ch='0'&&ch0;k--)
{
if(temp==0) break;
temp*=10;
num[j++]=(int)temp+'0';
num[j]='\0';
temp=temp-(int)temp;
}
}
else
{
face();
printf("input an expression,press key 'E' to compute\n");
printf("%s",str);
printf("\nwrong expression!");
}
i=0; j=0; str[0]='\0';
}
if(ch=='Q'||ch=='q')
{
printf("\nare you sure to quit?(Y/N)\n");
ch=getch();
if(ch=='Y'||ch=='y') break;
else
{
face();
printf("input an expression,press key 'E' to compute\n");
printf("%s",str);
}
}
ch=getch();
}
}

算术表达式求值设计一个程序,利用栈实现算术表达式的求值要求:(1)以字符串形式输入语法正确算术表达式,参与运算的操作数为整数,运算符只包括+,-,*,/,可包含小括号();(2)计算算术 算术表达式求值 高手,求助!问题描述:设计一个程序,演示用栈实现算术表达式求值的过程 基本要求: (1)以字符形式输入语法正确,不含变量的常规实数表达式; (2)判断表达式是否合法 算术表达式求值 【问题描述】 表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子.设计一个程序,演示符优先法对算术表达式求值的过程【基本要求】以字符序列 利用栈求表达式的值要求完成以下功能:编写程序实现表达式求值,即验证某算术表达式的正确性,若正确,则计算该算术表达式的值.主要功能描述如下:1)从键盘上输入表达式.2)分析该表达 编写一个程序实现求解任意算术表达式的值 用C语言数据结构算法编写程序!算术表达式求值:以字符序列的形式从终端输入语法正确的、不含变量的整数表达式,利用给定的算符优先关系,实现对算术四则混合运算表达式的求值,并演示 用栈的知识和算符优先法对算术表达式求值一、实验目的:熟练掌握栈的基本操作,进一步理解栈的应用.二、实验内容:设计一个程序,用算符优先法对算术表达式求值.三、基本要求:以字符 利用栈实现算术表达式的求值,表达式中可以包含加、减、乘、除、乘方、括号运算符,参加运算的操作数可以是实数.Input 输入一个算术表达式,以‘#’结尾,Output 输出算术表达式的结果(保留 试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.功能要求及说明:(1) 任意输入一个算术表达式;(2) 利用栈,判断表达式中出现的 我用C语言写一个关于算术表达式求值的程序.(用数据结构中的栈知识) 算术表达式能实现前缀后缀和中缀的表达是求值设计表达式的存储结构能求出结果 求《数据结构》课程设计(题目:算术表达式求值)系统应具备的功能:(1)设计算术表达式的存储结构(2)实现前缀表达式、中缀表达式和后缀表达式的求值 (3)输出求值结果希望 利用栈表达式求值 设计一个算术四则运算表达式求值的简单计算器的问题, c#算术表达式 求值 C语言版数据结构课程设计利用栈求表达式的值编写程序实现表达式求职,即验证某算术表达式的正确性,若正确,则计算该算术表达式的值.主要功能叙述如下:1.从键盘上输入表达式.2.分析该表 算术表达式求值算法?用C语言版 编写一个表达式求值演算的 算法程序 要求:使用栈,需要将算法的过程显示出来 ,输入一连串算术值 如:2*(3+2)# 然后 显示出算术过程 和结果!先将输入的 给定一个算术表达式,通过程序求出最后的结果.基本要求:从键盘输入要求解的算术表达式; 采用栈结构进行算术表达式的求解过程; 能够判断算术表达式正确与否; 对于错误表达式给出