用C实现一个四则运算程序

是这样,我希望实现这样一个程序:
比如你输入5+1-8*(1+7)/2,然后输入=,就会出来结果,跟一般的计算器一样,但为了降低难度,我考虑在式子两端加$ $以表示式子开始或者结束,我下的程序如下,我的算法是定义两个栈,一个存数字,一个存运算符,然后根据运算符的优先关系来进行出入栈运算。请帮我修改达到上述目的,当然,如果你有更好的算法,希望不吝赐教,谢谢。
程序太长了 写不下
各位帮忙啊

第1个回答  2007-04-22
可以根据式子生成一棵树,优先级越高的运算符越接近leaf节点,然后计算就可以了

such as:1+2*3
+
/ \
1 *
/ \
2 3

如何用C语言实现四则运算?
1.定义头文件#include "stdafx.h"、#include <stdio.h>和#include <math.h>。2.写出主函数void main(){},在函数内添加如下代码:\/\/定义变量 int minusNumber=-10; int plusNumber=0; \/\/转换成正数 plusNumber=abs(minusNumber); \/\/输出结果 printf("转换前:%d\\n",minusNumber); printf(...

...定义四个函数,分别实现加减乘除四则运算,要使用函数。计算除法时要...
1、定义一个基础函数,例如`double calculate(double x, double y, char operation)`,它接受两个数`x`和`y`以及一个操作符`operation`作为参数。这个函数将是实现四则运算的核心。2、在`calculate`函数内部,我们创建一个`double`类型的变量`result`来存储运算结果。对于加法,可以这样调用函数:`res...

c语言四则运算程序怎么写
加法运算是最简单的四则运算之一,其基本形式为atb,其中a和b为加数,+为加号,其结果为两个加数的和。在C语言中,加法运算可以使用“+”符号进行表示,例如:inta=10;intb= 20;intc=a+b;printf("a+b=%dn",c)。上述代码中,定义了两个整型变量a和b,分别赋值为10和20,然后使用“+”符号进...

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语言写一个可以实现加减乘除四则运算的计算器!
}算法流程:1,如果读入数字就把它存入数组中,2,如果读入加,减号就存如另一个数组用,如果读入乘 除号,就再读入一个数字,从存数字的数组拿出两个数字进行乘 除运算。把结果存入数组中,这么重复直到读入回车键的符号。3,读到回车符号后,就从存符号的数组中拿出一个符号,再从存数字的数组中...

c语言写四则运算...输入一个等式。。。再输入结果。。。判断正误...
void main(){ while(1){ int a=0,b=0,c=0,result,key;char d;printf("输入两个整数:\\n");scanf("%d",&a);scanf("%d",&b);printf("选择算法 '+','-','*','\/' \\n");scanf(" %c",&d);printf("输入计算结果:\\n");scanf("%d",&result);switch(d){ case'+': c=a...

用c语言编写四则运算,急呀!越简单越好
用纯粹的C语言实现,代码如下:include<stdio.h>int main(){ double a,b; scanf("%lf%lf", &a, &b); printf("a+b=%lf, a-b=%lf, a*b=%lf", a+b, a-b, a*b); if(b==0) printf(", error!\\n"); else printf(", a\/b=%lf\\n", a\/b); ...

求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...

C语言怎么实现任意两个数的四则运算?
C语言实现任意两个数的四则运算的方法:1、阅读代码,使用了随机函数:srand(unsigned( time(NULL)));通过调用随机函数,将生成的100以内的随机整数赋给不同的变量,一部分用于四则运算式数据的来源,而赋给变量c的随机数则用于结合switch语句控制程序跳转执行 不同的分支,即不同的四则运算,如下:c...

相似回答
大家正在搜