谁帮小弟用switch编个C语言程序

来源:百度知道 编辑:UC知道 时间:2024/06/30 12:58:39
x*x+2x-5,x<0且 x!=-3
f(x)=x*x-3x+6,0<=x<20且x!=5及x!8
x*x-3x-10,其他
要求
1.用IF语句实现分支,自变量与函数值均为双精度类型

#include<stdio.h>
#include<math.h>
void main()
{
double x,y;
int k=0;
scanf("%lf",&x);
if(x<0&&fabs(x+3)>1e-6)
k=-1;
if(x>=0&&x<20&&fabs(x-5)>1e-6&&fabs(x-8)>1e-6)
k=1;
switch(k)
{
case -1: y=x*(x+2)-5;break;
case 0: y=x*(x-3)-10;break;
case 1: y=x*(x-3)+6;
}
printf("%f\n",y);
}

这里要注意 自变量是双精度类型,不能直接比较(比如x!=5是错误的),要化成绝对值形式来判断,fabs(x-5)>1e-6,1e-6 就是10的-6次方