鱼C论坛

 找回密码
 立即注册
查看: 1365|回复: 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
  1. printf("s=%d\n",s);//错误!改成下面这样!
  2. printf("s=%lf\n",s);
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-4-12 19:31:09 | 显示全部楼层
  1. printf("s=%d\n",s);
复制代码

s是浮点型的

  1. #include<stdio.h>

  2. int main()
  3. {
  4.         float Pl = 3.14159;
  5.         double s, r=5;
  6.         s = r*r*Pl;
  7.         printf("s=%f\n",s);
  8. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

无论是与不是,都没有研究的必要
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

并不是随机的,是它找到了你变量s的首地址,然后取了4个字节以十进制整数输出
不过这确实没什么意义,本身用法错了,值就是没有意义的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 03:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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