hdu1237 簡單計算器

2021-06-09 03:32:47 字數 728 閱讀 1290

模擬棧運算,其實遞迴也可以,不過我夠嗆能寫的出來

其實老早就看過表示式求值的問題,只不過一直沒有敲過,今天敲了一下,發現還是有不少問題的

code:

#include #include #include using namespace std;

bool check(char,char);

void solve();

char str[205],ch;

double tmp,a,b;

int i,len;

stackv;

stackc;

int main()

solve();

}return 0;

}void solve()

v.push(tmp);

}if(str[i]=='+' || str[i]=='-' || str[i]=='*' || str[i]=='/')

else

if(c.empty())

else

}c.push(str[i]);}}

}while(!c.empty())

}printf("%.2f\n",v.top());

v.pop();

}bool check(char ch1,char ch2)

if(ch2=='+'||ch2=='-')

return false;

}

hdu 1237 簡單計算器

模擬棧。設兩個陣列,乙個裝運算元,乙個裝操作符。根據優先順序,先乘除,後加減。include include include include char s 210 op 200 s1 200 double a 200 int char num char s1,int n 字串轉化成int型數 ret...

HDU1237 簡單計算器

problem description 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。input 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。output 對每個測試用例...

HDU 1237 簡單計算器

解題思路 這個題wa了一次,腦子不機密。兩個棧,乙個棧儲存運算符號,乙個儲存運算元。遇到運算元就壓進運算元的棧,遇到運算子就看如果是 的話就把之前的全部運算子一一退棧,每退乙個從運算元中取兩個數做計算,再將結果再壓回運算元的棧內。如果是 的話,如果之前的操作符也是 的話那就個上面一樣方法。如果操作符...