鱼C论坛

 找回密码
 立即注册
查看: 1216|回复: 6

[已解决]见代码

[复制链接]
发表于 2021-4-12 19:27:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void main()
{
        float Pl = 3.14159;
        double s,r=5;
        s = r*r*Pl;
        printf("s=%d\n",s);
}
为什么这个输出为s=1342177280
最佳答案
2021-4-12 19:32:19
你printf里面以整数形式打印双精度浮点数   数值自然是不对劲了  %d改成%lf
printf("s=%d\n",s);//错误!改成下面这样!
printf("s=%lf\n",s);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-12 19:31:09 | 显示全部楼层
printf("s=%d\n",s);
s是浮点型的
#include<stdio.h>

int main()
{
        float Pl = 3.14159;
        double s, r=5;
        s = r*r*Pl;
        printf("s=%f\n",s);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 19:32:19 | 显示全部楼层    本楼为最佳答案   
你printf里面以整数形式打印双精度浮点数   数值自然是不对劲了  %d改成%lf
printf("s=%d\n",s);//错误!改成下面这样!
printf("s=%lf\n",s);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 19:36:04 | 显示全部楼层
yuxijian2020 发表于 2021-4-12 19:32
你printf里面以整数形式打印双精度浮点数   数值自然是不对劲了  %d改成%lf

谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 19:44:30 From FishC Mobile | 显示全部楼层
又见三土 发表于 2021-4-12 19:36
谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗?

无论是与不是,都没有研究的必要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 19:55:09 | 显示全部楼层
又见三土 发表于 2021-4-12 19:36
谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗?

并不是随机的,是它找到了你变量s的首地址,然后取了4个字节以十进制整数输出
不过这确实没什么意义,本身用法错了,值就是没有意义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 20:11:40 | 显示全部楼层
yuxijian2020 发表于 2021-4-12 19:55
并不是随机的,是它找到了你变量s的首地址,然后取了4个字节以十进制整数输出
不过这确实没什么意义,本 ...

好的,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表