hdu acm-step 2.1.7 Balloon Comes!

Posted mtl6906

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu acm-step 2.1.7 Balloon Comes!相关的知识,希望对你有一定的参考价值。

 

      这道题的题意:给出一个运算符和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!的主要内容,如果未能解决你的问题,请参考以下文章

hdu acm-step 1.3.7 排列2

hdu acm-step 2.1.3 相遇周期

hdu acm-step 1.3.6 Wooden Sticks

hdu acm-step 2.1.5 又见GCD

hdu acm-step 2.1.1 最小公倍数

hdu acm-step 1.3.1 Moving Tables