民间酒坊需要办什么证:编程高手帮下忙好么 用c语言 编程实现表达式求解

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 04:47:14

//表达式求解
#include
#include
//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 {
lj=lj+b[i]*c[i]*pow(a[0]-0x30,c[i]-1);
}
cout< cin>>i;
}

给出表达示啊