编程分段函数

#include <stdio.h>
void main()
{
int x,y;
scanf("%d",&x);
if(x<6)
{
y=x-12;
printf("%d\n",y);
}
else
{
if(6<=x<15)
{
y=3*x-1;
printf("%d\n",y);
}
else
{
y=5*x+9;
printf("%d\n",y);
}
}
}

此分段函数,当我输入15时,仍然按3x-1算,不知道错在哪里

输入数用scanf()函数;
分段用switch()函数;
1、绝对值用math库里面的abs()函数
2、e^x用math库里面的pow(e,x)函数
3、同理指数的都有pow()函数,
4、cos函数也是math库里面的double cos(double x)函数

补充:对于自变量x的不同的取值范围,有着不同的对应法则,这样的函数通常叫做分段函数。它是一个函数,而不是几个函数;分段函数的定义域是各段函数定义域的并集,值域也是各段函数值域的并集。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-07

1)首先纠错:

错在

if(6<=x<15)这句的书写格式上面,c++编译器编译通过,

但是在逻辑识别上出问题,改正如下

 if(x<15&&x>=6) 

2)该程序在编写楼主基本能实现需要的功能,但是在逻辑组织上相对不明朗,可以进一步优化和简化。

给出其中的一种例码:

#include <stdio.h>

void main()

{   

 int x,y; 

 scanf("%d",&x); 

 if(x<6) 

  y=x-12;

 else if(x<15&&x>=6)           

  y=3*x-1;             

 else               

  y=5*x+9;   

 printf("%d\n",y);     

}

 

本回答被提问者采纳
第2个回答  2019-09-24
输入数用scanf()函数;
分段用switch()函数;
1、绝对值用math库里面的abs()函数
2、e^x用math库里面的pow(e,x)函数
3、同理指数的都有pow()函数,
4、cos函数也是math库里面的double
cos(double
x)函数
自己动手吧,我已经把难点全部说出来了!
希望可以帮到你,如果满意请采纳!
相似回答