hdu acm-step 2.1.7 Balloon Comes!
阿新 • • 發佈:2017-08-16
hdu a* -s 輸出 函數 logs oid 2個 題意
這道題的題意:給出一個運算符和2個操作數,打印運算結果,需要註意的是如果結果不是整數,那麽輸出2位浮點數.
代碼如下:
#include <cstdio> using namespace std; namespace IO{ const int M = 0xcf; int scan() { char ch; int sum = 0; int f = 0; while((ch = getchar()) != ‘\n‘ || f == 0) { if(ch >= ‘0‘ && ch <= ‘9‘) { sum = sum * 10 + (ch & M); f = 1; } else if(ch == ‘ ‘&& f != 0) { return sum; } }return sum; } }; void calculate(int b,int a,char op) { switch(op) { case ‘+‘: printf("%d\n",a+b);break; case ‘-‘: printf("%d\n",a-b);break; case ‘*‘: printf("%d\n",a*b);break; case ‘/‘: { if(a % b == 0) printf("%d\n",a/b); else printf("%.2lf\n",(double)a/b); break; } } } int main() { int T; T = IO::scan(); while(T--) { calculate(IO::scan(),IO::scan(),getchar()); } return 0; }
這是本人第一次寫IO,遇到了一個比較坑的問題。
大家要註意,C/C++的函數參數是從右到左傳入的。
因此輸入的時候上述三個函數的調用順序是getchar(),IO::scan,IO::scan。
hdu acm-step 2.1.7 Balloon Comes!