資源簡介
使用c語言實現,將給定的運算表達式翻譯成逆波蘭表達式的形式

代碼片段和文件信息
#include
#include
char?phrase[199]sign[100]num[100][100]tmp[100];
int?ns_topn_top;
int?main()
{
????freopen(“data.txt““r“stdin);
????int?ij;
????gets(phrase);
????strcat(phrase“)“);
????n=strlen(phrase);
????n_top=s_top=0;
????sign[s_top]=‘(‘;
????for(i=0;i ????????if(phrase[i]>=‘0‘&&phrase[i]<=‘9‘){
????????????for(j=i;j=‘0‘&&phrase[j]<=‘9‘;j++)
????????????????tmp[j-i]=phrase[j];
????????????tmp[j-i]=‘\0‘;
????????????strcat(num[n_top++]tmp);
????????????i=j-1;
????????}
????????else??if(phrase[i]==‘*‘||phrase[i]==‘/‘){
????????????while(sign[s_top]==‘*‘||sign[s_top]==‘/‘){
????????????????num[n_top][0]=sign[s_top--];
????????????????num[n_top++][1]=‘\0‘;
????????????}
????????????sign[++s_top]=phrase[i];
????????}
????????else?if(phrase[i]==‘+‘||phrase[i]==‘-‘){
????????????while(sign[s_top]!=‘(‘){
????????????????num[n_top][0]=sign[s_top--];
????????????????num[n_top++][1]=‘\0‘;
????????????}
????????????sign[++s_top]=phrase[i];
????????}
????????else?if(phrase[i]==‘(‘){
????????????sign[++s_top]=phrase[i];
????????}
????????else{
????????????while(sign[s_top]!=‘(‘){
????????????????num[n_top][0]=sign[s_top--];
????????????????num[n_top++][1]=‘\0‘;
????????????}
????????????s_top--;
????????}
????}
????for(i=0;i ??????printf(“%s?“num[i]);
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????16??2009-12-21?15:20??data.txt
?????文件???????1394??2009-12-21?15:55??main.cpp
-----------?---------??----------?-----??----
?????????????????1410????????????????????2
評論
共有 條評論