時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3 描述
輸入第一行輸入乙個整數n,共有n組測試資料(n<10)。
每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以「=」結束。這個表示式裡只包含+-*/與小括號這幾種符號。其中小括號可以巢狀使用。資料保證輸入的運算元中不會出現負數。
資料保證除數不會為0
輸出每組都輸出該組中綴式相應的字尾式,要求相鄰的運算元操作符用空格隔開。
樣例輸入
21.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的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證輸入...