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;
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.