C语言编程设计过程中输出结果总为0,这是为什么?

#include<stdio.h>#include<math.h>intmain(void){doublex,y;printf("Enterx:");scanf("%ld... #include<stdio.h>
#include<math.h>
int main (void)
{
double x,y;
printf ("Enter x:");
scanf ("%ld",&x);
if (x<0){
y=pow(x,5)+2*x+1/x;
}
else {
y=sqrt(x);
}
printf ("y=%lf\n",y);
return 0;
}
为什么输出结果总是为0.000000
展开
 我来答
风若远去何人留
2017-10-11 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部

x是double,要用%lf输入,而不是ld

#include<stdio.h>
#include<math.h>
int main (void)
{
    double x,y;
    printf ("Enter x:");
    scanf ("%lf",&x);//%lf
    if (x<0){
        y=pow(x,5)+2*x+1/x;
    }
    else {
        y=sqrt(x);
    } 
    printf ("y=%lf\n",y);
    return 0;
}
天蝎座王瑞杰
2017-10-11 · 超过29用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:19.6万
展开全部
#include<stdio.h>
#include<math.h>
int main (void)
{
    double x, y;
    
    printf ("Enter x:");
    //scanf ("%ld",&x);
    scanf ("%lf", &x);
    if (x < 0)
    {
        y = pow(x,5) + 2*x + 1/x;
    }
    else
    {
        y = sqrt(x);
    }
    printf ("y=%lf\n", y);
    return 0;
}

将 ld 改为 lf 即可

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenqing8585
2017-10-11 · TA获得超过8252个赞
知道大有可为答主
回答量:8078
采纳率:70%
帮助的人:3870万
展开全部
scanf ("%ld",&x);要改成:
scanf ("%lf",&x);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2017-10-11 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
scanf ("%lf",&x);
这一句写错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿玉880808
2017-10-11 · TA获得超过231个赞
知道小有建树答主
回答量:354
采纳率:52%
帮助的人:56.7万
展开全部
是不是把1和l,或0和o混了?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式