| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1327 人关注过本帖
标题:书例题的运行结果和答案不符
只看楼主 加入收藏
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
结帖率:100%
收藏
 问题点数:0 回复次数:11 
书例题的运行结果和答案不符

#include<stdio.h>
int main(void)
{
float aboat=32000.0;
double abet=2.14e9;
long double dip=5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%f can be written %e\n",abet,abet);
printf("%f can be written %e\n",dip,dip);
getchar();
return 0;
}
运行结果是:

图片附件: 游客没有浏览图片的权限,请 登录注册

而书上最后一项的答案是:
0.000053 can be written 5.320000e-5

我觉得我的运行结果有问题,是什么原因啊?


搜索更多相关主题的帖子: 结果 written 例题 abet aboat 
2007-11-09 16:28
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用阿牧在2007-11-9 16:28:46的发言:

#include<stdio.h>
int main(void)
{
float aboat=32000.0;
double abet=2.14e9;
long double dip=5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%f can be written %e\n",abet,abet);
printf("%f can be written %e\n",dip,dip);
getchar();
return 0;
}
运行结果是:

而书上最后一项的答案是:
0.000053 can be written 5.320000e-5

我觉得我的运行结果有问题,是什么原因啊?




对 long double 支持不好,可以说不支持 。 /* DEV-C++ 编译的吧 */

double 最好使用 %lf
long double 最好使用 %llf


long double 是 C99 标准下的类型 (目前 没有编译器 100% 支持 C99标准)

C++Builder2007 支持非常好。(%zd ,不支持)

就这个可以说它不完全支持 C99

[此贴子已经被作者于2007-11-9 16:43:16编辑过]


—>〉Sun〈<—
2007-11-09 16:35
eakcon
Rank: 1
等 级:新手上路
帖 子:754
专家分:0
注 册:2007-11-7
收藏
得分:0 
編譯器版本不配套啊!
2007-11-09 16:40
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
没错,是用DEV-C++ 编译的,DEV-C++对C99支持不完全吗?
把%f改为 %llf运行结果还是一样的。
2007-11-09 16:41
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用阿牧在2007-11-9 16:41:45的发言:
没错,是用DEV-C++ 编译的,DEV-C++对C99支持不完全吗?
把%f改为 %llf运行结果还是一样的。

不完全支持,GCC 编译器没有一个完全支持的。

图片附件: 游客没有浏览图片的权限,请 登录注册


这样可以支持更多 C99 标准。




for(int i = 0; i < 10; i++) /* 在 for 循环中声明变量 */
printf(%d", i);


—>〉Sun〈<—
2007-11-09 16:46
longfeng867
Rank: 1
来 自:重庆
等 级:新手上路
威 望:1
帖 子:182
专家分:0
注 册:2007-5-20
收藏
得分:0 
用VC环境运行~~~~通过 !!!

在这个连处女膜都可以伪造的世界里,还有什么值得我相信!
2007-11-09 16:50
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
以下是引用cosdos在2007-11-9 16:46:12的发言:

不完全支持,GCC 编译器没有一个完全支持的。



这样可以支持更多 C99 标准。




for(int i = 0; i < 10; i++) /* 在 for 循环中声明变量 */
printf(%d", i);

图形中的选项我在安装时就选上了,看来还是DEV-C++ 编译器的问题。

2007-11-09 16:53
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
以下是引用longfeng867在2007-11-9 16:50:08的发言:
用VC环境运行~~~~通过 !!!

VC安装是不是很大?

2007-11-09 16:53
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
回复:(阿牧)以下是引用longfeng867在2007-11-9 16:...
比较大

而且没有必要装 VC ,

DEV-C++ 完全可以

VC 也不是完全支持 C99 标准。

没有必要为了一个类型装 VC

一般情况下不会用到 long double 的

(long double 16 字节大小 128位)

学 C 根本不需要 128 位的基本类型。

—>〉Sun〈<—
2007-11-09 17:09
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
回复:(cosdos)回复:(阿牧)以下是引用longfeng86...
非常感谢!
2007-11-09 17:15
快速回复:书例题的运行结果和答案不符
数据加载中...
 
   



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

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