欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    用C语言写的计算器源代码.docx

    • 资源ID:3658280       资源大小:37.39KB        全文页数:6页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用C语言写的计算器源代码.docx

    用C语言写的计算器源代码用C语言写的计算器源代码.txt什么叫神话?请听男人向你表达爱意;什么叫传说?请听男人对你的承诺;什么叫梦境?请看你自己听到前两者时的反应。用C语言写的计算器源代码 #include<stdio.h> #include<iostream.h> #include<stdlib.h> #include<string.h> #include<ctype.h> typedef float DataType; typedef struct DataType *data; int max; int top; Stack; void SetStack(Stack *S,int n) S->data=(DataType*)malloc(n*sizeof(DataType); if(S->data=NULL) printf("overflow"); exit(1); S->max=n; S->top=-1; void FreeStack(Stack *S) free(S->data); int StackEmpty(Stack *S) if(S->top=-1) return(1); return(0); DataType Peek(Stack *S) if(S->top=S->max-1) printf("Stack is empty!n"); exit(1); return(S->dataS->top); void Push(Stack *S,DataType item) if(S->top=S->max-1) printf("Stack is full!n"); exit(1); S->top+; S->dataS->top=item; DataType Pop(Stack *S) if(S->top=-1) printf("Pop an empty stack!n"); exit(1); S->top-; return(S->dataS->top+1); typedef struct char op; int inputprecedence; int stackprecedence; DataType1; typedef struct DataType1 *data; int max; int top; Stack1; void SetStack1(Stack1 *S,int n) S->data=(DataType1*)malloc(n*sizeof(DataType1); if(S->data=NULL) printf("overflow"); exit(1); S->max=n; S->top=-1; void FreeStack1(Stack1 *S) free(S->data); int StackEmpty1(Stack1 *S) if(S->top=-1) return(1); return(0); DataType1 Peek1(Stack1 *S) if(S->top=S->max-1) printf("Stack1 is empty!n"); exit(1); return(S->dataS->top); void Push1(Stack1 *S,DataType1 item) if(S->top=S->max-1) printf("Stack is full!n"); exit(1); S->top+; S->dataS->top=item; DataType1 Pop1(Stack1 *S) if(S->top=-1) printf("Pop an empty stack!n"); exit(1); S->top-; return(S->dataS->top+1); DataType1 MathOptr(char ch) DataType1 optr; optr.op=ch; switch(optr.op) case'+': case'-': optr.inputprecedence=1; optr.stackprecedence=1; break; case'*': case'/': optr.inputprecedence=2; optr.stackprecedence=2; break; case'(': optr.inputprecedence=3; optr.stackprecedence=-1; break; case')': optr.inputprecedence=0; optr.stackprecedence=0; break; return(optr); void Evaluate(Stack *OpndStack,DataType1 optr) DataType opnd1,opnd2; opnd1=Pop(OpndStack); opnd2=Pop(OpndStack); switch(optr.op) case'+': Push(OpndStack,opnd2+opnd1); break; case'-': Push(OpndStack,opnd2-opnd1); break; case'*': Push(OpndStack,opnd2*opnd1); break; case'/': Push(OpndStack,opnd2/opnd1); break; int isoptr(char ch) if(ch='+'|ch='-'|ch='*'|ch='/'|ch='(') return(1); return(0); void Infix(char *str) int i,k,n=strlen(str); char ch,numstr10; DataType opnd; DataType1 optr; Stack OpndStack; Stack1 OptrStack; SetStack(&OpndStack,n); SetStack1(&OptrStack,n); k=0; ch=strk; while(ch!='=') if(isdigit(ch)|ch='.') for(i=0;isdigit(ch)|ch='.'i+) numstri=ch; k+; ch=strk; numstri='0' opnd= atof(numstr); Push(&OpndStack,opnd); else if(isoptr(ch) optr=MathOptr(ch); while(Peek1(&OptrStack).stackprecedence>=optr.inputprecedence) Evaluate(&OpndStack,Pop1(&OptrStack); Push1(&OptrStack,optr); k+; ch=strk; else if(ch=')') optr=MathOptr(ch); while(Peek1(&OptrStack).stackprecedence>=optr.inputprecedence) Evaluate(&OpndStack,Pop1(&OptrStack); Pop1(&OptrStack); k+; ch=strk; while(!StackEmpty1(&OptrStack) Evaluate(&OpndStack,Pop1(&OptrStack); opnd=Pop(&OpndStack); cout<<"你输入表达式的计算结果为"<<endl; printf("%-6.2fn",opnd); FreeStack(&OpndStack); FreeStack1(&OptrStack); void main cout<<"请输入你要计算的表达式,并以“=”号结束。"<<endl; char str50; gets(str); Infix(str);

    注意事项

    本文(用C语言写的计算器源代码.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开