時間限制:
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 #include #include using namespace std;
char a[1010], b[1010];
int k = 0;
stacks;
int first(char ch)}/*
得到乙個操作符或者運算元。
如果是運算元就輸入到陣列,
如果是'('壓棧,
如果是')' 棧頂出棧直到棧頂為'(',然後將'('也彈出
如果是運算子,優先順序大於棧頂元素,壓棧
優先順序小於棧頂元素,出棧,並將出棧的元素輸入到陣列,並將此運算子壓棧
輸入結束,就將棧裡的元素全部出棧輸入到陣列,直到棧空。
*/void change()
b[k ++] = ' ';
} else if(a[i] == '(')
else if(a[i] == ')')
s.pop();
i++;
} else
s.push(a[i]);
i++;
} }char t = s.top();
while(t != '#')
b[k ++] = '=';
b[k ++] = '\0';
}int main (void)
return 0;
}
NYOJ467中綴式變字尾式
輸入 第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證輸入的運算元中不會出現負數。資料保證除數不會為0 輸出每組都輸出該組中...
NYOJ 467 中綴式變字尾式
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 輸入第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證...
NYOJ467中綴式變字尾式
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 輸入 第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保...