标题:学习过程中遇到几个不懂的问题,请各位大侠帮忙解疑
只看楼主
insistance
Rank: 2
等 级:论坛游民
帖 子:10
专家分:25
注 册:2010-7-17
结帖率:100%
已结贴  问题点数:5 回复次数:6 
学习过程中遇到几个不懂的问题,请各位大侠帮忙解疑
# include "stdio.h"
# include"math.h"
main()
{
 int a=9;
 
 printf("%d",sqrt(a));
}
 
运行结果为 0
将输出类型改为浮点型 "%f"
# include "stdio.h"
# include"math.h"
main()
{
 int a=9;
 
 printf("%f",sqrt(a));
}
运行结果为 3.000000
请各位大侠解疑
搜索更多相关主题的帖子: 解疑 学习 
2010-07-21 09:50
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
得分:2 
sqrt()函数返回参数的平方根,是一个浮点数,printf为格式化输出函数,类型必须匹配,例如int就要用%d,浮点型要用%f
收到的鲜花
  • insistance2010-07-21 19:54 送鲜花  2朵  
2010-07-21 09:57
lillew
Rank: 2
等 级:论坛游民
帖 子:12
专家分:17
注 册:2010-7-16
得分:0 
回复 2楼 heartnheart
如果是不匹配的话,c++是会自动转换格式的。但是c好象是不能转换,你在sqrt前面加一个(int)强制转换成int型的,结果是正确的
2010-07-21 10:04
fqtb16
Rank: 7Rank: 7Rank: 7
来 自:上海
等 级:黑侠
帖 子:96
专家分:504
注 册:2009-12-28
得分:2 
楼上正解,sqrt()原型是double sqrt();
收到的鲜花
  • insistance2010-07-21 19:55 送鲜花  2朵  

爱拼才会赢
2010-07-21 10:06
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
得分:0 
%d应该改成%f

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-21 13:31
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
得分:1 
因为sqrt()是数学函数,需要用float型的,正如二楼所讲
收到的鲜花
  • insistance2010-07-21 19:55 送鲜花  1朵  

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-21 13:31



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




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

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