任务描述
本关任务:有一分段函数:
y=⎩⎪⎪⎨⎪⎪⎧ex−1∣∣∣x∣∣∣+2sin(x2)x>1−1⩽x⩽1x<−1
编写程序,用嵌套的if-else
语句实现,要求输入x的值,输出y的值。
相关知识
本关任务既可以应用多个并列的if
语句完成如下:
if(x>1)
printf("y=%.2f\n",exp(sqrt(x))-1);
if(x<-1)
printf("y=%.2f\n",sin(x*x));
if(x<=1 && x>=-1 )
printf("y=%.2f\n",fabs(x)+2);
也可以用if-else
嵌套语句完成:
if(x>1)
printf("y=%.2f\n",exp(sqrt(x))-1);
else
{
if(x<-1)
printf("y=%.2f\n",sin(x*x));
else
printf("y=%.2f\n",fabs(x)+2);
}
注意:并列的多个if
语句,程序是会将每个if
语句都进行判断,只有为真才会执行if
语句后面的语句块,当为假时,就会去执行下一个if
语句进行判断,直到所有的if
语句都判断完。
而if-else
嵌套语句,就不是并列的关系了,当满足一个if
语句判断为真,那么它执行完if
语句后面的语句块,就会不再执行后面的else-if
语句了。
编程要求
根据提示,在右侧编辑器补充代码,将结果保留两位小数后输出。
测试说明
平台会对你编写的代码进行测试:
测试输入:2.5
预期输出:y=3.86
测试输入:-0.5
预期输出:y=2.5
测试输入:-2.5
预期输出:y=-0.03
#include<stdio.h>
#include<math.h>
int main()
{
float x;
scanf("%f",&x);
/********** Begin **********/
if(x>1)
printf("y=%.2f\n",exp(sqrt(x))-1);
else
{
if(x<-1)
printf("y=%.2f\n",sin(x*x));
else
printf("y=%.2f\n",fabs(x)+2);
}