求助!!用c语言编一个科学计算器.. 要求有点复杂
答案:1 信息版本:手机版
解决时间 2019-10-06 12:43
已解决
2019-10-06 07:45
表达式计算器,允许用户输入计算表达式,计算出相应结果。
【表达式定义】表达式采用符号请严格按照以下规定处理。
1. 数值:包括int,long,float,double和biginteger(需自己实现大数的基本运算)。
2. 括号,只支持()。
3. 运算符号包括加+、减-、乘*、除/、平方^、阶乘!
4. 支持的数学函数:(函数不考虑大数计算)
cos(), sin(), tg(), ctg(),abs(), sign(), sqrt(), ln(), sinh()(双曲正弦函数), cosh()(双曲余弦函数), tanh()(双曲正切函数), coth()(双曲余切函数)
(注意:当使用三角函数时,需要提示用户当前的输入的角度是弧度还是角度,默认为弧度,允许用户进行设置,将弧度变为角度)
5. 特殊的常数PI为3.1415926,E为2.71828
6. 表达式可以是常数,加+、减-、乘*、除/、平方^、括号(),以及数学函数的组合
【计算器功能】
1、 用户输入表达式,回车,计算器计算出相应结果,允许用户设置结果精度。
2、 程序可提示用户保存表达式的计算结果,通过选择菜单的相应选项,也可以将保存结果显示给用户。(需进行文件读写)
【计算结果输出】
如果计算结果为整数,则直接输出整数。若计算结果为小数则根据用户设置精度进行输出。(默认保留小数点后三位)
示例:
用户输入
1+sin(30)
程序输出结果
0.012
又如,
用户输入
23+56/(102-100)*((36-24)/(8-6))
程序输出结果:
191
全部回答
1楼
2019-10-06 09:22
#include
float a,b;
char c;
void js()
{switch(c)
{case '+':
{a+=b;printf("=%f\n",a);} break;
case '-':
{a-=b;printf("=%f\n",a);} break;
case '*':
{a*=b;printf("=%f\n",a);} break;
case '/':
{if (b==0) printf("error,\n");
else
a/=b;printf("=%f\n",a);} break;
default:printf("\n");}
}
main()
{char d;
printf("请输入算术表达式,以回车结尾:\n");
scanf("%f%c%f%c",&a,&c,&b,&d);
while(d!='=')
{js();
scanf("%c%f",&c,&b);}}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯