该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
printf("please input the Expression :\n ");
gets©;
s=filter©;
Resolve(s,a,b);
while(b[i]!='\0'&&b!='\n')
{
if(b[i]!='('){ if(kern<=a[0])number=stackin(number,a[kern++]); }
if(b[i]=='a'||b[i]=='s'){
number=stackout(number,&num);
number=stackin(number,tatal(0,num,b[i]));
}
else if(operater==NULL||b[i]=='(')operater=stackin(operater,(double)b[i]);
else if(b[i]==')')
{
if((char)operater->data=='(')operater=stackout(operater,&sum);
else { while((char)operater->data!='(')
{
number=stackout(number,&num);
ber=stackin(ber,num);
operater=stackout(operater,&sum);
if(oper==NULL)oper=stackin(oper,sum);
else {
if(max((char)sum)<=max((char)oper->data)&&ber->next!=NULL)
{
ber=stackout(ber,&num1);
ber=stackout(ber,&num2);
oper=stackout(oper,&num);
ber=stackin(ber,tatal(num1,num2,(char)num));
}
oper=stackin(oper,sum);
}
}
number=stackout(number,&num1);
ber=stackin(ber,num1);
operater=stackout(operater,&sum);
ber=stackout(ber,&num1);
ber=stackout(ber,&num2);
oper=stackout(oper,&num);
if((char)num=='-'||(char)num=='/')number=stackin(number,Contrary(num1,num2,(char)num));
else { number=stackin(number,tatal(num1,num2,(char)num)); }
}
}
else {
if(max(b[i])<=max((char)operater->data)&&number->next!=NULL)
{
number=stackout(number,&num1);
number=stackout(number,&num2);
operater=stackout(operater,&sum);
num=tatal(num1,num2,(char)sum);
number=stackin(number,num);
}
operater=stackin(operater,(double)b[i]);
}
i++;
}
if(kern<=a[0])number=stackin(number,a[kern]);
while(operater!=NULL)
{
number=stackout(number,&num1);
number=stackout(number,&num2);
operater=stackout(operater,&sum);
number=stackin(number,tatal(num1,num2,(char)sum));
}
for(k=0;s[k]!='\0';k++)printf("%c",s[k]);
number=stackout(number,&num2);
printf("=%lf\n",num2);
printf("\nSuccess! Press any key to exit!\n");
getch();
}