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

📄 ttt.txt

📁 介绍双数组逆波兰表达式法:
💻 TXT
字号:
#include "stdio.h"
#define m0 100

void main(){

char str[m0];
char exp[m0];
char stack[m0];
float stack1[m0],d;
char ch,c;
int i,j,t,top=0;
i=0;

clrscr();
do
{
i++;
scanf("%c",&str[i]);
}while (str[i]!=’#’&&i!=m0);
t=1;
i=1;
ch=str[i];
i++;
while(ch!=’#’)
{
if(ch>=’0’&&ch<=’9’)
{
exp[t]=ch;
t++;
}
else
if(ch==’(’)
{
top++;
stack[top]=ch;
}
else
if(ch==’)’)
{
while(stack[top]!=’(’)
{
exp[t]=stack[top];
top--;
t++;
}
top--;
}
else
if (ch==’+’||ch==’-’)
{
while(top!=0&&stack[top]!=’(’)
{
exp[t]=stack[top];
top--;
t++;
}
top++;
stack[top]=ch;
}
else
if(ch==’*’||ch==’/’)
{
while(stack[top]==’*’||stack[top]==’/’)
{
exp[t]=stack[top];
top--;
t++;
}
top++;
stack[top]=ch;
}
ch=str[i];
i++;
}
while(top!=0)
{
exp[t]=stack[top];
t++;
top--;
}
exp[t]=’#’;
for(j=1;j<=t;j++)printf("%c",exp[j]);
printf("\n");
exp[t+1]=’\0’;
t=1;
top=0;
c=exp[t];
t++;
while(c!=’#’)
{
if(c>=’0’&&c<=’9’)
{
d=c-’0’;
top++;
stack1[top]=d;
}
else
{
switch (c)
{
case ’+’:stack1[top-1]=stack1[top-1]+stack1[top];break;
case ’-’:stack1[top-1]=stack1[top-1]-stack1[top];break;
case ’*’:stack1[top-1]=stack1[top-1]*stack1[top];break;
case ’/’: 
if(stack1[top]!=0)
stack1[top-1]=stack1[top-1]/stack1[top];
else
printf("ERROR!!! Zero can not be divided.\n");
getch();
exit(0);
}
top--;
}
c=exp[t];
t++;
}
printf("The mark is %g",stack1[top]);
getch();
} 

⌨️ 快捷键说明

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