时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
编写程序,计算下列分段函数y=f(x)的值。结果保留到小数点后三位。
y=−x+2.5;0≤x<5
y=2−1.5(x−3)(x−3);5≤x<10
y=x/2−1.5;10≤x<20
【输入】
一个浮点数x(0≤x<20)。
【输出】
输出 x 对应的分段函数值:f(x)。结果保留到小数点后三位。
【输入样例】
1.0
【输出样例】
1.500
【解题代码】
方法一:
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
double x,y;
cin>>x;
if(0<=x && x<5){
y=-x+2.5;
}else if(5<=x && x<10){
y=2-1.5*(x-3)*(x-3);
}else if(10<=x && x<20){
y=x/2-1.5;
}
printf("%.3f\n",y);
return 0;
}
方法二:
#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
double x,y;
cin>>x;
switch(0<=x && x<5)
{
case 1:y=-x+2.5;break;
case 0:
switch(5<=x && x<10)
{
case 1:y=2-1.5*(x-3)*(x-3);break;
case 0:
switch(10<=x && x<20)
{
case 1:y=x/2-1.5;break;
}
break;
}
break;
}
printf("%.3f\n",y);
return 0;
}