带有括号的四则运算的c语言编程

如题所述

第1个回答  2014-06-10
符号放一个栈,数放一个栈,一个个读数字和符号,遇到加减先将左右数和该符号入栈。如果遇到乘除,先将左右相乘或相除,再将结果替换最后一个入栈的数,最后追答

将所有结果和运算符(只有加减)出栈,如果运算中遇到反括号,做以上同样操作直到正括号出栈

举个例子3+4*5,push 3 ,push + ,push 4 ,pop, push 4*5, 最后将所有数和符号 pop出来,得到: 20 + 3,答案是23

第2个回答  2014-06-10
这道题有点麻烦的,涉及到括号的匹配问题
第3个回答  2014-06-10
例如:(a+b)/c-d

用简单的C语言实现带括号的四则运算
char *c: 输入的字符串 返回参数:0:字符串中有不符合规定的字符 1: 字符串字符符合规定,没有不符合规定的字符.功能:检查字符串中有否除了 0-9, +,-,*,\/,(,),之外的其他字符,如果有,则返回0, 表示出现错误。若没有,则返回1,表式字符串符合规定。\/ int check(char *c){ int k=...

C语言实现带有括号的四则运算
int n=0;void error(void) \/*报告错误函数*\/ { printf("ERROR!\\n");exit(1);} void match(char expected) \/*检查字符匹配的函数*\/ { if(token[n]==expected)token[++n]=getchar();else error();} double term(void); \/*计算乘除的函数*\/ double factor(void); \/*处理括号和数字的...

c语言四则运算带括号且不使用指针
case '=': e[i]=0,i=I;break;default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * \/ h =\\n",i+1,e[i]);}} printf("\\n");sss(d,e,I);}

如何运用大一C语言基础编写简单带括号的四则运算?
1.从中缀表达式中逐字符读入操作数 2.若操作数为数字,直接输出到后缀表达式队列 3.若操作数为左括号(,将其压栈 4.若操作数为加减乘除运算符,将其与栈顶元素比较:①操作数优先级高于栈顶元素,则将操作数压栈;②操作数优先级等于或低于栈顶元素,先将栈顶元素出栈,然后将操作数压栈。5.若...

如何用C语言实现四则运算?
2.写出主函数void main(){},在函数内添加如下代码:\/\/定义变量 int minusNumber=-10; int plusNumber=0; \/\/转换成正数 plusNumber=abs(minusNumber); \/\/输出结果 printf("转换前:%d\\n",minusNumber); printf("转换后:%d\\n",plusNumber);3.点击红叹号调试。程序清单:include "stdafx.h"#...

C语言怎么实现四则运算
我曾用c编了个计算器,支持四则运算,支持括号改变优先级,你看看吧:include <stdio.h> include <string.h> include <stdlib.h> include <conio.h> define Esc 27 define Tab 9 void needle(char* s,char* carriage,int start)\/\/needle意为“用针缝”{ int size_carriage=(int)strlen(carriage)...

c语言则么怎么实现四则运算
void main(){ float a=0,b=0,c=0,key;char d;printf("输入简单的四则运算表达式:\\n");scanf("%f%c%f",&a,&d,&b);switch(d){ case'+': c=a+b;break;case'-': c=a-b;break;case'x':case'*': c=a*b;break;case'\/': if(b>0) c=a\/b;break;default:break;} printf...

四则运算用c语言怎么搞
int b[50]={0},count;char c[50],t;int i=0,j=0;char *d;c[0]='\\0';while(*a!='\\0'||c[j]!='\\0'){ count=0;if(*a<='9'&&*a>='0'){ d=a;while(*d<='9'&&*d>='0'){ d++;count++;} while(count>0){ b[i]+=(int)((*a-'0')*pow(10,count-1)...

用简单的c语言编写四则运算题
printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!\\n");srand((unsigned int)time(NULL));while(1){ printf("请选择运算类型:1.加法 2.减法 3.乘法 4.除法(保留两位小数)\\n");scanf("%d",&choice);printf("请选择位数:1.一位数 2.两位数\\n");scanf("%d",&data);swit...

求c语言编写四则运算程序
else error();\/*extraneous cahrs on line*\/ } main(){ do { calculate();}while(1);} float exp(void){ float temp = term();while((token=='+')||(token=='-'))switch(token){ case '+':match('+');temp+=term();break;case '-':match('-');temp-=term();break;} r...

相似回答