輸入
第一行輸入乙個整數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 #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的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證...