#include
#include//注意添加math头文件
void main()
{
double x,y;
printf("Input x");
scanf("%lf",&x);
if(x<-1)
{
//y=x^3-1;
y=pow(x,3)-1;//次方用pow函数,包含在math.h中
printf("%lf",y);
}
else if(x<=1)
{
//y=-3x+1;
y=-3*x+1; //乘号不能省略
printf("%lf",y);
}
else if(x<=10)
{
//y=3e(2*x-1)+5;
y=3*exp(2*x-1)+5;//指数函数用exp这个函数,包含在math.h中,不能直接写e
printf("%lf",y);
}
else
{
//y=5*x+3*lg(2*x^2-1)-13;
y=5*x+3*log(2*pow(x,2)-1)-13;//没有lg这个函数,有log这个函数
printf("%lf",y);
}
}
#include
#include
#define e 2.718
void main()
{
double x, y;
printf("Input x: ");
scanf("%lf", &x);
if (x < -1)
{
y = pow(x,3) - 1;
printf("%lf", y);
}
else if (x <= 1)
{
y = -3*x + 1;
printf("%lf", y);
}
else if (x <= 10)
{
y = 3*e*(2*x - 1) + 5;
printf("%lf", y);
}
else
{
y = 5 * x + 3 * log(2 * pow(x, 2) - 1) - 13;
printf("%lf", y);
}
}
你这真心是小错误啊,自己定义数学运算符,未声明头文件,而且还缺个大括弧,我改了下,代码你对比下吧……
在程序设计中,
^表示异或运算,要求x的3次方,可以用pow(x,3)或者x*x*x;
3x不能这样表示,应该是3*x,运算符不能少;
没有lg,要10为底,可以用换低公式,lg(x)=log(x)/log(10);
①C 语言 中 ^ ,这个是 按位 异或 运算,不是 次方。次方只能用 乘法(*)x*x*x;
②C 语言 不支持 数学中的 乘号 省略(3x-1),要使用 *号(3*x-1);
③lg 对数,是需要 用 函数执行的。