百练8216-分段函数-2016正式A题
百练
/2016计算机学科夏令营上机考试
已经结束A:分段函数
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
编写程序,计算下列分段函数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
- 输入
- 一个浮点数N,0 <= N < 20
- 输出
- 输出N对应的分段函数值:f(N)。结果保留到小数点后三位。
- 样例输入
-
1.0
- 样例输出
-
1.500
1 #include <iostream> 2 #include <stdio.h> 3 #include <string> 4 5 using namespace std; 6 7 int main() { 8 double a; 9 while (cin >> a) { 10 double y; 11 if(a >= 0.0 && a < 5.0) { 12 y = -1*a + 2.5; 13 } 14 else if(a >= 5.0 && a < 10) { 15 y = 2-1.5*(a-3)*(a-3); 16 } 17 else if (a >= 10.0 && a < 20) { 18 y = a / 2 - 1.5; 19 } 20 printf("%.3f\n", y); 21 } 22 return 0; 23 24 }
提交网址:http://wbgzs.openjudge.cn/ex20170204/1/
主要注意输出格式。
参考百度知道:https://zhidao.baidu.com/question/230218201.html
控制小数位数就是通过输出格式说明符来规定的。
举例说明如下:
123456float
f1=3.1415926;
float
f2=1234.1415926;
float
f3=124.1;
printf
(
"%3.4f"
, f1);
// 输出结果为:_ _ 3.1416 ( _ 表示空格)
printf
(
"%3.4f"
, f2);
// 输出结果为:1234.1416
printf
(
"%3.4f"
, f3);
// 输出结果为:124.1000
printf("%3.4f", f);中的3是控制f的整数部分按3位的固定位宽输出;4是按四舍五入的准则保留4位小数。
注:如果整数部分不足3位,则在前面补空格,超过3位,则按实际位数输出;如果小数部分不足4,则在后面补0