C作业

作业要求
编程实现一个复杂算术运算的计算器,即:可实现形如“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;
}

猜你喜欢

转载自blog.csdn.net/qq_43305193/article/details/83861092