1116.加减乘除
- 題目描述:
-
根據(jù)輸入的運算符對輸入的整數(shù)進行簡單的整數(shù)運算。
運算符只會是加+、減-、乘*、除/、求余%、階乘!六個運算符之一。
輸出運算的結果,如果出現(xiàn)除數(shù)為零,則輸出“error”,如果求余運算的第二個運算數(shù)為0,也輸出“error”。
- 輸入:
-
輸入為一行。先輸入第一個整數(shù),空格輸入運算符,然后再空格輸入第二個整數(shù),回車結束本次輸入。
如果運算符為階乘!符號,則不輸入第二個整數(shù),直接回車結束本次輸入。
- 輸出:
-
可能有多組測試數(shù)據(jù),對于每組數(shù)據(jù),
輸出一行。輸出對輸入的兩個(或一個)數(shù),根據(jù)輸入的運算符計算的結果,或者“error”。
- 樣例輸入:
-
12 + 34 54 - 25 3 * 6 45 / 0 5 ! 34 % 0
- 樣例輸出:
-
46 29 18 error 120 error
- 提示:
-
運算不會超出整型數(shù)據(jù)的范圍。0!=1; 測試數(shù)據(jù)有多組。
- 來源:
- 2008年北京大學圖形實驗室計算機研究生機試真題
#include<iostream> #include<cstring> using namespace std;int fac(int x){if(x==0 || x==1) return 1;else return x*fac(x-1); }int main(){int n,m;char p;while(cin>>n>>p){int num=0;int out=true;if(p=='!'){num=fac(n);}else if(p=='+'){cin>>m;num=n+m;}else if(p=='-'){cin>>m;num=n-m;}else if(p=='*'){cin>>m;num=n*m;}else if(p=='/' || p=='%'){cin>>m;if(m==0) out=false;else {if(p=='/'){num=n/m;}else num=n%m;}}if(out) cout<<num<<endl;else cout<<"error"<<endl;}return 0; }
?
轉載于:https://www.cnblogs.com/bernieloveslife/p/9735019.html
總結
- 上一篇: 血糖仪多少钱啊?
- 下一篇: 让人喜欢你(转载)?