7 5 表示式轉換(25 分)

2021-08-22 12:14:06 字數 1194 閱讀 9088

算術表示式有字首表示法、中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。

輸入在一行中給出不含空格的中綴表示式,可包含+-*\以及左右括號(),表示式不超過20個字元。

在一行中輸出轉換後的字尾表示式,要求不同物件(運算數、運算符號)之間以空格分隔,但結尾不得有多餘空格。

2+3*(7-4)+8/4

2 3 7 4 - * + 8 4 / +

#include#include#includechar str[27];

int len;

char stack[27];

int top=0;

int index=0;

int isnum(char c)

int compare(char a,char b) }}

int zhengfu(char a)

void mainfun()

printf("%c",str[index]);

} //+ - 這兩個符號要進一步判斷是否是正負號

//判斷符號為+-號 並且是在第一位 或者 前一位不是數字和『)』 那麼這個就是正負號

else if(zhengfu(str[index])&&( (index==0) || (isnum(str[index-1])!=1&&str[index-1]!=')') ))

printf("%c",str[index]);

} } //如果是運算子

else

}else

stack[top++]=str[index];}}

else //棧為空,直接入棧

int j;

for(j=0;jif(stack[j]!='(')

} }while(top!=0)

printf(" %c",stack[--top]);

}int main()

表示式轉換 25 分

首先規定優先順序,括號為最高優先順序,乘號或除號為次優先順序,加或減號為最低優先順序,至於數字,碰到就直接輸出即可。既然是數字,就有小數,整數,正數,負數之分,還有關於二元運算子的輸出,在括號內的二元運算子優先輸出,優先順序高的優先輸出 當然括號不算啊 根據題意,在輸出時可分為以下幾種情況。incl...

5 20 表示式轉換 25分

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...

5 20 表示式轉換 25分

算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...