c语言分段函数的值

如题所述

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-11

代码如下所示,

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    double x, y;  // 定义函数的自变量、因变量,考虑到可能有小数的情况,设置数值类型为double型
    int getBuff; // 用于最后清空输入缓冲区残留,了解即可
    
    printf("请输入自变量x的值(一个数字):\n");
    scanf("%lf",&x);  // 输入自变量的一个值

    if(x<-2)
        y = 7-2*x;
    else if(x>=-2 && x<3)
        y = 5 - fabs(3*x+2);  //  注意,对浮点型数值取绝对值,要用fabs()函数
    else
        y = 3*x+4;
    
    printf("自变量x为%lf时,对应的函数值y是:%lf\n",x,y);
    
    while(getBuff=getchar()!='\n' && getBuff!=EOF);  // 清空输入缓冲区残留,了解即可
    
    printf("按回车键结束...");
    getchar();
    
    return 0;
}

为了避免手机上查看时,代码版式错乱,代码的截图如下,

如有帮助,烦请采纳,谢谢!

本回答被网友采纳
第2个回答  2012-06-16
#include<stdio.h>
#include<math.h>

void main()
{
int x;
float Y;
printf("please input x\n");
scanf("%d",&x);
if(x > 0)
Y = 1 + exp(x); //数学函数,计算e的x次方
else if(x == 0)
Y = 1;
else
Y = log(x * x); //数学函数,计算x的平方,以e为底
printf("%.4f\n",Y);
}

please input x
0
1.0000
Press any key to continue

please input x
1
3.7183
Press any key to continue

please input x
-2
1.3863
Press any key to continue
第3个回答  2014-10-26
x改成float类型,第一句printf结尾的分号是中文的,没必要esle if,要清空缓冲区,否则程序会一闪而过
#include<stdio.h>
#include<math.h>
void main()
{
float x;
printf("输入一个数X\n");
scanf("%f",&x);
if (x<0)
x=0;
else
x=2*x+1;
printf("%f\n",x);
fflush(stdin);
getchar();
}
第4个回答  2018-04-05
您好
你的第一个else if写错了,c语言使用‘==’表示等于
所以应为else if (x ==0)
应该只有这里错了
希望对您有帮助
相似回答