作业要求
编程实现一个复杂算术运算的计算器,即:可实现形如“a op1 b op2 c”的混合算术运算,其中a、b、c分别是操作数,op1、op2分别是运算符。设计要求:(1)操作数类型是基本整型,运算符可以是加(+)、减(-)、取余(%)、求幂(^),优先级与结合性说明:取余和求幂优先相同,先取余、求幂,后加、减,左结合性;(2)程序由多个函数构成,其中main函数用于实现算术表达式的输入,和运算结果的输出,子函数用于实现算术表达式的计算,子函数可以是一个,也可以是多个,由用户自行设计;(3)程序运行时,由键盘输入数据。
#include<stdio.h>
int fun1(int x,char op,int y)
{
int res=1;
switch(op)
{
case'+':res=x+y;break;
case'-':res=x-y;break;
case'%':res=x%y;break;
case'^':
for(int i=1;i<=y;i++)
res=res*x;
break;
}
return res;
}
int fun2(int a,char op1,int b,char op2,int c)
{
int res;
if((op1=='+'||op1=='-')&&(op2=='%'||op2=='^'))
res=fun1(a,op1,fun1(b,op2,c));
else
res=fun1(fun1(a,op1,b),op2,c);
return res;
}
int main()
{
int a,b,c,res;
char op1,op2;
scanf("%d",&a);
op1=getchar();
scanf("%d",&b);
op2=getchar();
scanf("%d",&c);
res=fun2(a,op1,b,op2,c);
printf("%d",res);
return 0;
}