总时间限制: 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
思路:
主要考察printf输出格式控制
代码
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
double N,y;
freopen("input.txt","r",stdin);
while(cin>>N)
{
if(N>=0.&&N<5.)
{
y=2.5-N;
}
else if(N>=5.&&N<10.)
{
y=2.-1.5*(N-3.)*(N-3.);
}
else if(N>=10.&&N<20.)
{
y=N/2.-1.5;
}
printf("%.3f\n",y);
}
return 0;
}
常见格式使用样例:
[百练](http://noi.openjudge.cn/ch0101/07/)
#include<stdio.h>
#include<string.h>
int main()
{
char c, s[20];
int a=1234;
float f=3.141592653589;
double x=0.12345678912345678;
strcpy(s, "Hello,World");
c='\x41';
printf("a=%d\n", a);//按照十进制整数格式输出,显示 a=1234
printf("a=%d%%\n", a);//输出%号 结果 a=1234%
printf("a=%6d\n", a);//输出6位十进制整数 左边补空格,显示 a= 1234
printf("a=%06d\n", a);//输出6位十进制整数 左边补0,显示 a=001234
printf("a=%2d\n", a);//a超过2位,按实际输出 a=1234
printf("a=%-6d\n", a);///输出6位十进制整数 右边补空格,显示 a=1234
printf("f=%f\n", f);//浮点数有效数字是7位,结果 f=3.141593
printf("f=6.4f\n", f);//输出6列,小数点后4位,结果 f=3.1416
printf("x=%lf\n", x);//输出长浮点数 x=0.123457
printf("x=%18.16lf\n", x);//输出18列,小数点后16位,x=0.1234567891234567
printf("c=%c\n", c); //输出字符 c=A
printf("c=%x\n", c);//以十六进制输出字符的ASCII码 c=41
printf("s[]=%s\n", s);//输出数组字符串s[]=Hello,World
printf("s[]=%6.9s\n", s);//输出最多9个字符的字符串 s[]=Hello,Wor
如果输出十六进制则%x 如果输出八进制则%o
对于十六进制如果想要0x 则%#x 如果想要0X则%#X
对于八进制如果想要0 则%#o
return 0;
}