📄 calculate.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 + -