首先要說的是題目裡的「忽略空格!」和要考慮有小數點的情況,之前沒搞清楚被坑了好久。
然後就是計算器的實現方法,就是用理論課上講的對乙個字串,首先對數字壓入數字棧,如果是運算子,則根據乙個表定義的大小:(直接拍了書上的筆記了)
若是棧頂符號》當前檢查到的符號,則彈出兩個數和乙個運算子進行計算,並將結果壓入棧,直到進入其他情況。
若是另外,當到字串最後時,則不斷運算直到符號棧空,此時輸出結果。
#include #include #include #include #include using namespace std;
bool isnumber(char a)
else return false;
}bool iscal(char a)
else return false;
}int main()
if (s[i] == ' ')
if (isnumber(s[i]))
else
}else
if (iscal(s[i]))
else // 1>2
else if (cal.top() == '/')
else if (cal.top() == '+')
else if (cal.top() == '-')
cal.pop();}}
cal.push(s[i]);
}if (i == s.length() - 1)
else if (cal.top() == '/')
else if (cal.top() == '+')
else if (cal.top() == '-')
cal.pop();}}
} cout << setiosflags(ios::fixed) << setprecision(3) << number.top() << endl;
}}
簡單計算 sdut oj
time limit 1000ms memory limit 65536kb problem description 接受從鍵盤輸入的n個整數,輸出其中的最大值 最小值和平均值 平均值為整除的商 input 第一行乙個正整數n n 100 第二行有n個用空格隔開的整數ti 1 i n,0 ti 10...
簡單計算練習
public static void yue 請編寫完成個人所得稅計算。個稅免徵金額3500元 工資薪金所得適用 1.不超過1500元 3 2.超過1,500至4,500元的部分 10 105 3.超過4,500至9,000元的部分 20 555 4.超過9,000至35,000元的部分 25 1,...
簡單計算器
unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,buttons,math math是數 算單元 type tform1 class ...