1. 程式人生 > >hdu acm-step 2.1.7 Balloon Comes!

hdu acm-step 2.1.7 Balloon Comes!

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!