- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c表达式求值实现
1:工程结构
2:源代码
cpp:
#includeiostream
#includestdlib.h
#includectype.h
#includecmath
using namespace std;
typedef float type1;
typedef char type2;
struct zhan1
{
type1 opnd[50];
int basic;
int top;
};
struct zhan2
{
type2 optr[52];
int basic;
int top;
};
char yunsuan[8]={+,-,*,/,(,),#};
int priority[7][7]={ {3,3,1,1,1,3,3},{3,3,1,1,1,3,3},{3,3,3,3,1,1,3},{3,3,3,3,1,3,3},{1,1,1,1,1,2,0},{3,3,3,3,0,3,3},{1,1,1,1,1,0,2} };
int yunsuanfu(char c)
{
for(int i=0;i7;i++)
{
if(c==yunsuan[i])
{
return 1;
}
}
return 0;
}
int youxianji(char a,char b)
{
int ia=0;
int ib=0;
for(int i=0;i7;i++)
{
if(a==yunsuan[i])
{
ia=i;
break;
}
}
for(i=0;i7;i++)
{
if(b==yunsuan[i])
{
ib=i;
break;
}
}
return priority[ia][ib];
}
int operate(int a,char the,int b)
{
char s[5]={+,-,*,/};
if(the==s[0]) return a+b;
if(the==s[1]) return a-b;
if(the==s[2]) return a*b;
if(the==s[3]) return a/b;
}
void main()
{
zhan1 s1;
zhan2 s2;
s1.top=0;s1.basic=0;
s2.top=0;s2.basic=0;
s1.opnd[s1.top]=0;
char c;
s2.optr[s2.top]=#;
c=getchar();
while(c!=#||s2.optr[s2.top]!=#)
{
if(yunsuanfu(c))
{
switch(youxianji(s2.optr[s2.top],c))
{
case 0:cout输入操作符错误,重新输入:endl;c=getchar();break;
case 1:s2.top++;s2.optr[s2.top]=c;c=getchar();break;
case 2:s2.top--;c=getchar();break;
case 3:char theta=s2.optr[s2.top];s2.top--;float b=s1.opnd[s1.top-1];s1.top--;float a=s1.opnd[s1.top-1];s1.top--;float answer=operate(a,theta,b);s1.opnd[s1.top]=answer;s1.top++;break;
}
}
else
{
if(isdigit(c))
{
float shuzi[12];
int i=0;
double s=0.0;
float zhi=0;
shuzi[i]=(float)c-48.0;
i++;
c=getchar();
while(isdigit(c)i=11)
{
shuzi[i]=(float)c-48.0;
i++;
c=getchar();
}
s=i;
for(int j=0;ji;j++)
{
float m=pow(10.0,s-1.0);
zhi=zhi+m*shuzi[j];
s--;
}
s1.opnd[s1.top]=zhi;
s1.top++;
您可能关注的文档
最近下载
- 2023《基于4P营销理论的斯拉新能源汽车营销策略分析》9600字.docx
- 5.2 珍惜师生情谊 课件-2024-2025学年统编版道德与法治七年级上册 .pptx VIP
- 5.2 珍惜师生情谊 课件-2024-2025学年统编版道德与法治七年级上册.pptx VIP
- 初中英语的课堂观察量表4.pdf VIP
- 外研版(三起)四年级上册英语知识汇总.docx VIP
- 第二单元写作+写人要关注事例和细节-统编版高中语文必修上册.pptx VIP
- 人教版七年级上册生物全册新质教学课件(配2024年秋改版教材).pptx
- 分部分项划分方案.doc
- 第三单元《分数除法》教材解读--精品课件-新人教版数学六年级上册.pptx VIP
- 国内外职业教育发展现状及趋势.ppt
文档评论(0)