巴基斯坦和中国的地图:用C语言编程实现一个简单的四则运算计算器

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 19:33:16
编程:编程实现一个简单的四则运算计算器:从键盘输入一个四则运算表达式(没有空格和括号),遇等号"="说明输入结束,输出结果。
假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算(即:2+3*5先计算2+3,再计算5*5)。
示例:括号内是说明
输入
1+2*10-10/2=
输出
10

用一个数组a作为存储数字的栈,另一个b作为存储操作符的栈,弹出一个操作符即弹出对应的两个数字进行运算,然后将运算结果压回a,直到a中只有一个元素,这个元素即为最后的结果。

#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;
}

将算式作为字符串输入,然后检测+_*/字符,再将符号间的字符还原为数字,从左到右计算完成。应该可以,你如果把赏分提高到20的话,我就写写程序。
楼下的涉及到数据结构,恐怕搂主看不懂吧。不过如果赏分提高到30的话,我就写写这个程序。