标题:大哥大姐们帮帮小弟看看是哪里错了哟。。。
只看楼主
菜鸟一只呀
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-10-30
结帖率:50%
已结贴  问题点数:5 回复次数:2 
大哥大姐们帮帮小弟看看是哪里错了哟。。。

大哥大姐们帮帮小弟看看是哪里错了哟。。。顺便问下log以2为底5的对数怎么写呀
#include <stdio.h>
void sign (double x)
{
   printf("%lf\n",x > 0 ? 1 : x == 0 ? 0 : -1);
}
int main()
{
    sign (2.1);
    return 0;
}
搜索更多相关主题的帖子: 大哥大 return include double 
2012-10-30 13:03
星闪夜空
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2012-9-15
得分:3 
回复 楼主 菜鸟一只呀
   对于第一个问题,你应该将那条打印语句改写为 printf("%d\n",x > 0 ? 1 : x == 0 ? 0 : -2);因为你最终的打印结果只可能是1,0,-2这几个数中的一个,所以不应该用%lf,而是%d作为printf的格式码。   
   对于第二个问题,虽然C语言中没有以2为底的log函数,但是却有以10为底的log函数,你可以先将以2为底的log转化为以10为底的log,接下来就容易了吧。
2012-10-30 16:17
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
得分:3 
#include <stdio.h>
void sign (double x)
{
   printf("%d\n",((x > 0 ? 1 : x )== 0 )? 0 : -1);//注意优先级
}
int main()
{
    sign (2.1);
    return 0;
}
math.h中有以10为底的
log以2为底5的对数 换底公式

马马虎虎 不吝赐教 我是路过蹭分滴
2012-10-30 17:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385116-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099596 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved