1558 - 分段函数0

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

编写程序,计算下列分段函数y=f(x)的值。

 0<= x <2y= -x+2.5

 2<= x <4y=2-1.5(x-3)(x-3)

 4<= x <6y=x/2-1.5

题目输入

输入第一行为整数m表示样例数,接下来有m行每行一个整数x。

题目输出

输出m行分别表示对应的y值,保留小数点后一位小数。

输入/输出样例

输入格式

2
1
3

输出格式

y=1.5
y=2.0

C语言解答

#include <stdio.h>
int main ()
{
	double x,y=0,m;
	scanf("%lf",&m);
	while(m--)
	{
		scanf("%lf",&x);
		if(x>=0 && x<2)
		{
			y=2.5-x;
		}
		if(x>=2 && x<4)
		{
			y=2-1.5*(x-3)*(x-3);
		}
		if(x>=4 && x<6)
		{
			y=x/2-1.5;
		}
		printf("y=%.1f\n",y);
	}

}

C++解答

#include<iostream>
#include<iomanip>
using namespace std;

int x,m,i;
float y;
int main()
{
	cin>>m;
	i=0;
	while(i<m)
	{
		cin>>x;
		if(x>=0&&x<2) y=-x+2.5;
		else if(x<4) y=2-1.5*(x-3)*(x-3);
		else if(x<6) y=x/2-1.5;
		cout<<"y="<<fixed<<setprecision(1)<<y<<endl;
		i++;
	}
	return 0;
}

Java解答

import java.util.*;

public class Main{
	public static void main (String[] args) {
		Scanner in=new Scanner(System.in);
		double s;
		int n=in.nextInt();
		for(int i=1;i<=n;i++){
			double x=in.nextDouble();
			if(x>=0&&x<2){
				s=2.5-x;
				System.out.println ("y="+String.format("%.1f",s));
			}
			if(x>=2&&x<4){
				s=2-1.5*(x-3)*(x-3);
				System.out.println ("y="+String.format("%.1f",s));
			}
			if(x>=4&&x<6){
				s=x/2-1.5;
				System.out.println ("y="+String.format("%.1f",s));
			}
		}
	}
}