关于double的问题

Ranmei 2003-10-19 11:36:29
问题如下 :
#include <stdio.h>
float add(float b){
float a=0.12;
a=a+b;
return a;
}
int main(){
float r;
r=add(1.23);
printf("%f\n",&r);
return 1;
}
/*
程序的结果为 0.000000。
1和1.0在数据类型上有什么区别?int?double?float?...
怎么修改才能输出float的结果,能详细说明一下吗?
*/
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ranmei 2003-10-19
  • 打赏
  • 举报
回复
ou 我真菜....
ttlb(小鸟___ttlb___) :那我怎么输入float呢?
默认的转换有问题吗?

Jinhao 2003-10-19
  • 打赏
  • 举报
回复
printf("%f\n",&r);//错了,输出的是r对象的地址,是个整型,不符合浮点型的二进制格式,所以是0.00000
printf("%f\n",r);//正确

只有scanf()才使用&r
akiko 2003-10-19
  • 打赏
  • 举报
回复
printf("%f\n",&r);改为
printf("%f\n",r);
ttlb 2003-10-19
  • 打赏
  • 举报
回复
1 是 int
1.0 是 double
这是语言默认的规定。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧