#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double n;
cin>>n;
cout.setf(ios::fixed);
if(n>=0&&n<5)
cout<<setprecision(3)<<2.5-n<<endl;
else if(n>=5&&n<10)
cout<<setprecision(3)<<2-1.5*(n-3)*(n-3)<<endl;
else if(n>=10&&n<20)
cout<<setprecision(3)<<n/2-1.5<<endl;
cout.unsetf( ios::fixed ); //取消fixed控制
return 0;
}
三个阶段都是输出保留三位小数的浮点数
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double n;
cin>>n;
if(n>=0&&n<5)
cout<<fixed<<setprecision(3)<<2.5-n<<endl;
else if(n>=5&&n<10)
cout<<setprecision(3)<<2-1.5*(n-3)*(n-3)<<endl;
else if(n>=10&&n<20)
cout<<setprecision(3)<<n/2-1.5<<endl;
return 0;
}
只有0<=n<5时输出保留三位小数的浮点数,下面两个为保留三位有效数。
显然第二个代码这影响这一个cout语句