HDOJ 1170 Balloon Comes!
Problem Description
The contest starts now! How excited it is to see balloons floating around.
You, one of the best programmers in HDU, can get a very beautiful balloon if only you have solved the very very very... easy problem.
Give you an operator (+,-,*, / --denoting addition, subtraction, multiplication, division respectively) and two positive integers, your task is to output the result.
Is it very easy?
Come on, guy! PLMM will send you a beautiful Balloon right now!
Good Luck!
Input
Input contains multiple test cases. The first line of the input is a single integer T (0<T<1000)
which is the number of test cases. T test cases follow. Each test case contains a char C (+,-,*, /) and
two integers A and B(0<A,B<10000).
Of course, we all know that A and B are operands and C is an operator.
Output
For each case, print the operation result. The result should be
rounded to 2 decimal places If and only if it is not an integer.
Sample Input
4
+ 1 2
- 1 2
* 1 2
/ 1 2
Sample Output
3
-1
2
0.50
题意简单说就是输入运算符和两个数之后把运算结果输出。这道题注意注意两点就好了,第一处理好回车,如果处理不好多余回车的话程序会异常,第二浮点运算结果输出方式,不然一直Wrong Answer。我刚开始也是忽略了第二点,导致一直错误。后来才注意到的。
#include<stdio.h>
int main()
{
int a, b, n;
char c;
scanf("%d", &n);
getchar();//处理多余换行
while (n--)
{
scanf("%c %d %d", &c, &a, &b);
getchar();//处理多余换行
switch (c)
{
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 * b != a)//判断a能否被b整除
printf("%.2lf\n", (double)a / b);
else
printf("%d\n", a / b);
}
break;
}
}
return 0;
}