中綴變字尾(nyoj)

2021-06-18 23:57:10 字數 1169 閱讀 9801

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

輸入第一行輸入乙個整數n,共有n組測試資料(n<10)。

每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以「=」結束。這個表示式裡只包含+-*/與小括號這幾種符號。其中小括號可以巢狀使用。資料保證輸入的運算元中不會出現負數。

資料保證除數不會為0

輸出每組都輸出該組中綴式相應的字尾式,要求相鄰的運算元操作符用空格隔開。

樣例輸入

2

1.000+2/4=

((1+2)*5+1)/4=

樣例輸出

1.000 2 4 / + =

1 2 + 5 * 1 + 4 / =

**

#include#include#includeusing namespace  std;

stackstack_char;

#define maxsize 1010

int main()

if(i > 0 && isdigit(str[i - 1]))

printf(" ");

switch(str[i])

stack_char.push(str[i]);

break;

case '*':

case '/':

while((stack_char.top() == '*' || stack_char.top() == '/') && stack_char.top() != '=')//棧頂符號為『*』『/』時依次彈棧

stack_char.push(str[i]);

break;

case ')': //棧頂符號依次輸出

while(stack_char.top() != '(')

stack_char.pop();

}} while(!stack_char.empty())

printf("\n");

} return 0;

}

中綴變字尾

time limit ms 1000 memory limit kb 10000 submission 149 accepted 27 accepted 中綴表示式是乙個通用的算術或邏輯公式表示方法,操作符是以中綴形式處於運算元的中間 例 3 4 中綴表示式是人們常用的算術表示方法。字尾表示式不包含...

中綴式變字尾式 nyoj 467

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 輸入第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證...

中綴式變字尾式

時間限制 1000 ms 記憶體限制 65535 kb難度 3描述 輸入第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證輸入...