⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculate.cpp

📁 创建静态
💻 CPP
字号:
const int n0=30; 
int s1[n0+1]; 
char s2[n0+1]; 
int t1,t2; 
int num[10]; 
  
char a[100];

void calcu() //一次计算 
{ 
	int x1,x2,x; 
	char p; 
	i=0;
	
	p=s2[t2--]; 
	
	x2=s1[t1--]; 
	x1=s1[t1--]; 
	
	switch(p) 
	{ 
	case '+':x=x1+x2;break; 
	case '-':x=x1-x2;break; 
	case '*':x=x1*x2;break; 
	case '/':x=x1/x2; 
	} 
	
	s1[++t1]=x; 
} 

int calculator(char *f) 
{ 
	int v,i=0; 
	char *p=f; 
	t1=t2=0; 
	while (*p!='\0') 
		switch(*p)
	{ 
case '+': 
case '-': 
	while (t2&&(s2[t2]!='(')) 
		
		calcu(); 
	
	s2[++t2]=*p; 
	
	p++; 
	break; 
case '*':
case '/': 
	if (t2&&(s2[t2]=='*')||(s2[t2]=='/')) 
		
		calcu(); 
	
	s2[++t2]=*p; 
	
	p++; 
	break; 
case '(': 
	
	s2[++t2]=*p; 
	
	p++; 
	break; 
case ')': 
	while (s2[t2]!='(') 
		
		calcu(); 
	
	t2--; 
	
	p++; 
	break; 
default: 
	
	v=0; 
	do
	{ 
		v=10*v+*p-'0'; 
		p++; 
	} while((*p>='0')&&(*p<='9')); 
	
	s1[++t1]=v; 
	num[i++]=v; 

	}
	
	while (t2) calcu(); 
	
	return s1[t1]; 
} 

void M()
{
	cout<<"   ***********只能进行加减乘除的关于整数的运算,可以带()小括号********* "<<endl;
	cout<<" input表达式 以=号结束"<<endl;
	cout<<"  例如:5*((1+7)/4)=  回车    "<<endl;
	for(;;)
	{
		cin>>c;
		if(c!='=')
		{
			a[i]=c;
			i++;
		}
		else
		{	a[i]='\0';
		break;
		}
	}
	
	cout<<calculator(a)<<endl; 	
    i=0;//清空数组,以便继续计算
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -