📄 2.txt
字号:
表达式求解
//表达式求解
#include <iostream.h>
#include <math.h>
//char a[10]={'5','(','(','x','+','x',')','*','x',')'};//4x
//char a[10]={'5','(','(','x','*','x',')','+','x',')'};//2x+1
//char a[10]={'5','(','x','*','x',')'};//2x
char a[14]={'5','(','x','*','(','(','x','*','x',')','+','x',')',')'};
main()
{
int b[10]={{0}},c[10]={{0}};
char d[10]={{'-'}};//B为系数 C为指数栈 D为符号栈
int ks=1,kf=1,kh=1,i=0;//ks系数指针 kf符号指针 kh括号计数
do
{
i++;
switch(a[i])
{
case '(':
kh++;
break;
case 'x':
b[ks]=1;c[ks]=1;ks++;
break;
case '+':
d[kf]='+';kf++;
break;
case '*':
d[kf]='*';kf++;
break;
case ')':
if(kh!=1)
{
kh--;
kf--;
if(d[kf]=='+')
{
if(c[ks-2]==c[ks-1])
{
b[ks-2]=b[ks-2]+b[ks-1];
ks=ks-1;b[ks]=0;c[ks]=0;
}
}
if(d[kf]=='*')
{
b[ks-2]=b[ks-2]*b[ks-1];
c[ks-2]=c[ks-2]+c[ks-1];
ks=ks-1;b[ks]=0;c[ks]=0;
}
}
}
}while(kh!=1);
int lj=0;
for(i=1;i<ks;i++)
{
lj=lj+b[i]*c[i]*pow(a[0]-0x30,c[i]-1);
}
cout<<lj;
cin>>i;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -