NYOJ467中綴式變字尾式

2021-07-15 05:53:41 字數 1091 閱讀 4385

輸入

第一行輸入乙個整數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 #include #include #include #include using namespace std;

char s[1010];

stackcsta;

int main()

{ int n;

cin>>n;

while(n--)

{ scanf("%s",&s[1]);//從陣列第二號位置開始輸入,下面有秒用哦!?

s[0]='('; //和下面一起?

int len = strlen(s)-1;

s[len]=')'; //和上面一起,把整個算式用括號包起來?

for(int i=0;i<=len;i++)

{ if(s[i]=='(')//把左括號直接入棧?

csta.push(s[i]);

else if(s[i]>='0' && s[i]<='9' || s[i]=='.')//如果是數字,直接全部輸出?

{while(s[i]>='0' && s[i]<='9' || s[i]=='.')//別忘記輸出小數點哦!?

{cout<

NYOJ 467 中綴式變字尾式

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

NYOJ467中綴式變字尾式

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

中綴式變字尾式 nyoj 467

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