编写程序模拟带括号的计算器

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 18:01:21
编写程序模拟带括号的计算器

编写程序模拟带括号的计算器
编写程序模拟带括号的计算器

编写程序模拟带括号的计算器
#include
#include
#include
#include
#include
double fun1();
double fun2();
double fun3();
double fun4();
double fun5();
char calc[64];
int n;
double fun1()
{
double t;
t=fun2(); //先看有无乘除,将乘除计算完后再计算加减
while((calc[n]=='+')||(calc[n]=='-'))
{
switch(calc[n]) //计算加减时,再看后面的数有无乘除,将乘除计算完后再计算加减
{
case '+':n++,t=t+fun2();break;
case '-':n++,t=t-fun2();break;
}
}
return(t);
}
double fun2()
{
double t;
t=fun3(); //先看有无乘方,将乘方计算完后再计算乘除
while((calc[n]=='*')||(calc[n]=='/'))
{
switch(calc[n]) //计算乘除时,再看后面的数有无乘方,将乘方计算完后再计算乘除
{
case '*':n++,t=t*fun3();break;
case '/':n++,t=t/fun3();break;
}
}
return(t);
}
double fun3()
{
double t;
t=fun4(); //先看有无括号,将括号里的计算完后再计算乘方
while(calc[n]=='^')
{
n++,t=pow(t,fun4()); //计算乘方时,再看后面的数有无括号运算,将括号里的计算完后再计算乘方
}
return(t);
}
double fun4() //如此,将fun4()的值返回时(有括号的先算括号里的,再将计算值返回,起到去括号的目的),逐级按乘方、乘、除、加、减的次序进行计算,满足优先法则
{
char num[16];
int i=0;
double t;
if(calc[n]=='(')
{
n++,t=fun1(),n++; //遇括号时,先将括号里的值算出,再返回t给上一级
}
else if(fun5())
{
while(fun5()) //将与数字相关的符号赋予num[]
{
num[i++]=calc[n++];
}
num[i]='\0';
t=atof(num); //净num[]转换成数字
}
return(t); //返回t给上一级
}
double fun5()
{
if(((calc[n]>='0'&&calc[n]0&&(calc[n-1]=='+'||calc[n-1]=='-'||calc[n-1]=='*'||calc[n-1]=='/'||calc[n-1]=='^'||calc[n-1]=='(')))
return(1); //是与数字相关的,如数字字符、小数点、正负号,返回1
else
return(0); //加、减、乘、除、乘方时,返回0
}
int main(void)
{
int ds1,ds2;
loop:
n=0;
printf("Input a calculation method like 1+2^(3-4)*5/10=↙\nPlease:");
gets(calc); //输入表达式
for(ds1=0;calc[ds1]!='\0';ds1++) //去掉非运算符,如空格
if(!((calc[ds1]>='0'&&calc[ds1]

编写程序模拟带括号的计算器 编写一个模拟计算器的程序.要包括以下方法:加法,减法,乘法,除法.每个方法至少有两个参数. 编写一个程序模拟计算器的加减乘除四则运算.要求:采用函数调用,并用指向函数的指针作为函数的参数用C语言 编写一程序能够模拟电子钟的效果 matlab模拟阻尼振动用MATLAB模拟编写M文件带阻尼的振动. 用C语言编译一个简单计算器的程序,要求其中有括号和幂函数可以运行加减乘除,括号和幂函数请按照四则运算加、减、乘、除、幂(^)和括号的优先关系和惯例,编写计算器程序.要求:①从 求C 语言编写的计算器程序,能进行四则混合运算的,包括流程图, 用C语言编写简易计算器可实现两位数以上的四则运算.C语言编写单片机程序. 如何用vc++编写一个简单的(只有加减乘除)计算器程序? Java编写计算器的流程图 编写一个简易的计算器. 用c++设计一个计算器模拟程序,要求对包含加、减、乘、除、括号运算符及sqr和abs函数的任意整型表达式进行c也可以,不过最好带上注释 VB编写程序 用计算机模拟掷骰子游戏.编写程序统计掷N次后各点数出现的次数N尽量大,如100000次 JAVA编程 模拟科学计算器 要求:界面模拟Windows中的计算器程序.实现基本数学运算、函数等功能:加、减、模拟科学计算器要求:界面模拟Windows中的计算器程序.实现基本数学运算、函数等功 带根号的计算器 带根号的计算器 求一C++编写的计算器,要求能运算简单的四则运算,并且包括括号和小数! 请问这个‘VB程序’怎么编写:编写程序,利用随机函数模拟硬币的结果,用两个硬币一起投,统计“两个正面,两个反面,一正一反”三种情况出现的次数