用C语言编程实现一个简单的四则运算计算器
编程:编程实现一个简单的四则运算计算器:从键盘输入一个四则运算表达式(没有空格和括号),遇等号"="说明输入结束,输出结果。假设计算器只能进行加减乘除运算,运算数和结果都...
编程:编程实现一个简单的四则运算计算器:从键盘输入一个四则运算表达式(没有空格和括号),遇等号"="说明输入结束,输出结果。
假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算(即:2+3*5先计算2+3,再计算5*5)。
示例:括号内是说明
输入
1+2*10-10/2=
输出
10 展开
假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算(即:2+3*5先计算2+3,再计算5*5)。
示例:括号内是说明
输入
1+2*10-10/2=
输出
10 展开
3个回答
展开全部
#include <stdio.h>
//函数,读数操作数
int getNextNum()
{
int ret;
scanf("%d",&ret);
return ret;
}
//函数,读运算符
char getOpt()
{
return getchar();
}
//函数,计算
int caculate(int op1 , int op2 ,char opt)
{
if(opt=='+')return op1+op2;
if(opt=='-')return op1-op2;
if(opt=='*')return op1*op2;
if(opt=='/')return op1/op2;
return 0;
}
int main()
{
int op1,op2;
char opt;
//计算结果放在第一个操作数
op1 = getNextNum();
while(1)
{
opt = getOpt();
if ( opt == '=' ) break;
op2 = getNextNum();
op1 = caculate(op1,op2,opt);
}
printf("%d\n",op1);
}
return 0;
}
//函数,读数操作数
int getNextNum()
{
int ret;
scanf("%d",&ret);
return ret;
}
//函数,读运算符
char getOpt()
{
return getchar();
}
//函数,计算
int caculate(int op1 , int op2 ,char opt)
{
if(opt=='+')return op1+op2;
if(opt=='-')return op1-op2;
if(opt=='*')return op1*op2;
if(opt=='/')return op1/op2;
return 0;
}
int main()
{
int op1,op2;
char opt;
//计算结果放在第一个操作数
op1 = getNextNum();
while(1)
{
opt = getOpt();
if ( opt == '=' ) break;
op2 = getNextNum();
op1 = caculate(op1,op2,opt);
}
printf("%d\n",op1);
}
return 0;
}
2005-11-02 · 知道合伙人数码行家
关注
展开全部
用一个数组a作为存储数字的栈,另一个b作为存储操作符的栈,弹出一个操作符即弹出对应的两个数字进行运算,然后将运算结果压回a,直到a中只有一个元素,这个元素即为最后的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将算式作为字符串输入,然后检测+_*/字符,再将符号间的字符还原为数字,从左到右计算完成。应该可以,你如果把赏分提高到20的话,我就写写程序。
楼下的涉及到数据结构,恐怕搂主看不懂吧。不过如果赏分提高到30的话,我就写写这个程序。
楼下的涉及到数据结构,恐怕搂主看不懂吧。不过如果赏分提高到30的话,我就写写这个程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询