1.输出结果会是科学计数法(如果数字过大或者过小)会导致在某些oj里无法通过数据用例。
2.一旦使用了fixed<<setprecision(n).比如使用了fixed<<setprecision(3).那么会出现一个很蛋疼的问题,就是之后的数据,就算你不想保留三位小数输出,它还是会变成三位小数输出。解决方法是什么?emmmm,就是之后输出再加一个fixed<<setprecision(0);就可以了。
接下来看看杭电的1170
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
char a;
double b,c;
cin>>n;
while(n--)
{
cin>>a>>b>>c;
if(a=='*'){printf("%.0f",b*c);cout<<endl;}
else if(a=='/')
{
if((int)(b/c)==(b/c))cout<<fixed<<setprecision(0)<<b/c<<endl;
else cout<<fixed<<setprecision(2)<<b/c<<endl;
}
else if(a=='+')cout<<fixed<<setprecision(0)<<b+c<<endl;
else if(a=='-')cout<<fixed<<setprecision(0)<<b-c<<endl;
}
return 0;
}