C语言一个小程序有几个错误,帮我看看

这个是程序#include<stdio.h>voidmain(){doublex,y;printf("Inputx");scanf("%lf",&x);if(x<-1){... 这个是程序
#include<stdio.h>
void main()
{
double x,y;
printf("Input x");
scanf("%lf",&x);
if(x<-1)
{
y=x^3-1;
printf("%lf",y);
}
else if(x<=1)
{
y=-3x+1;
printf("%lf",y);
}
else if(x<=10)
{
y=3e(2x-1)+5;
printf("%lf",y);
}
else
{
y=5*x+3*lg(2*x^2-1)-13;
printf("%lf",y);
}
这个是编译之后的提示
--------------------Configuration: 3 - Win32 Debug--------------------
Compiling...
3.cpp
D:\3.cpp(9) : error C2296: '^' : illegal, left operand has type 'double'
D:\3.cpp(14) : error C2059: syntax error : 'bad suffix on number'
D:\3.cpp(14) : error C2146: syntax error : missing ';' before identifier 'x'
D:\3.cpp(14) : warning C4552: '+' : operator has no effect; expected operator with side-effect
D:\3.cpp(19) : error C2021: expected exponent value, not '('
D:\3.cpp(19) : error C2059: syntax error : 'bad suffix on number'
D:\3.cpp(19) : error C2146: syntax error : missing ')' before identifier 'x'
D:\3.cpp(19) : error C2064: term does not evaluate to a function
D:\3.cpp(19) : error C2059: syntax error : ')'
D:\3.cpp(24) : error C2065: 'lg' : undeclared identifier
D:\3.cpp(24) : error C2296: '^' : illegal, left operand has type 'double'
Error executing cl.exe.
展开
 我来答
百度网友d585d01
推荐于2016-12-05 · TA获得超过670个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:470万
展开全部
#include<stdio.h>
#include<math.h>//注意添加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);
}
}
人才v
2015-04-01 · TA获得超过199个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:117万
展开全部
#include<stdio.h>
#include<math.h>
#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);
    }
}

你这真心是小错误啊,自己定义数学运算符,未声明头文件,而且还缺个大括弧,我改了下,代码你对比下吧……

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9fc4c92
2015-04-01 · 超过19用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:31.3万
展开全部
在程序设计中,
^表示异或运算,要求x的3次方,可以用pow(x,3)或者x*x*x;
3x不能这样表示,应该是3*x,运算符不能少;
没有lg,要10为底,可以用换低公式,lg(x)=log(x)/log(10);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
烟火夜空
2015-04-01 · TA获得超过6623个赞
知道大有可为答主
回答量:1678
采纳率:93%
帮助的人:565万
展开全部
①C 语言 中 ^ ,这个是 按位 异或 运算,不是 次方。次方只能用 乘法(*)x*x*x;
②C 语言 不支持 数学中的 乘号 省略(3x-1),要使用 *号(3*x-1);
③lg 对数,是需要 用 函数执行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式