HDOJ 1170

#include<stdio.h>
int main()
{
int a,b,c,i,n;
double d;
char e;
while(scanf("%d",&n)!=EOF)
{
getchar();
for(i=1;i<=n;i++)
{
d=0;
scanf("%c %d %d",&e,&a,&b);
getchar();//必须吸收掉换行符,像下面这样是不行的,第一个字符会被认为是erter

/*

scanf("%d\n",&icase);

for (i=0;i<icase;i++)

{ scanf("%c%d%d",&opera,&num1,&num2);

…… }*/


switch(e)
{
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;
}
}
}
}

注意:看来刚开始理解错题意,只需是除法时才需判断,能除尽,就输出整数,否则小数

 //判断是否是整数的方法
    if((1.0*a/b-a/b)==0)
     printf("%d\n",a/b);
    else
    //输出格式
     printf("%3.2f\n",1.0*a/b);
    break;   

原文地址:https://www.cnblogs.com/hxsyl/p/2453304.html