| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 598 人关注过本帖
标题:为什么我求出的答案和讲座上的不一样?求解。。
只看楼主 加入收藏
wenwen1314
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2011-9-25
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:8 
为什么我求出的答案和讲座上的不一样?求解。。
#include
main()
{
    float x,y;
    long m,n;
    x = 3/2 + 8/3;
    y = 3.0/2 +8/3.0;
    m = 1*2*3*4*5*6*7*8*9;
    n = 1L*2*3*4*5*6*7*8*9;
    printf("x = %f,y = %f,m = %ld,n= %ld\n",x,y,m,n);
}   
    我运行之后答案是x=3.000000,y=4.166667,m=362880,n=3328803.
    教程上讲的是x=3.00000,y=4.166667,m=-30336,n=362880。
                   对此丶我不能理解? 希望大家帮忙想想啦丶。。
搜索更多相关主题的帖子: include 教程 
2011-10-08 13:39
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:0 
你把 m=%ld 的 L去掉试试

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-08 13:52
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:5 
不可能 代码 一样 带式 结果不一样吧
零波丽 说道

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-08 13:53
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
收藏
得分:5 
不同计算机不同类型存储位数不同,答案无需深究,你只要知道溢出就可以了
打个比方 a能放3个数,你把5赋给a就溢出了

[ 本帖最后由 ileelsai 于 2011-10-8 13:59 编辑 ]
2011-10-08 13:55
暴风雪282
Rank: 4
等 级:业余侠客
帖 子:61
专家分:295
注 册:2011-10-4
收藏
得分:5 
程序刚开始设置的m,n都是long,真正是long int,用的编译器不同他的位数不同,而最后输出是long double,一般的long double比long int位数长,所以后边几位是不同的,也就是说每次输出都会是不同的值.楼主可以试试测试你的c软件long int和long double是几位的.printf("%d",sizeof(long int));同理换成long double可测,希望对你有帮助.

Dance like there is nobody.
2011-10-08 22:38
wenwen1314
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2011-9-25
收藏
得分:0 
回复 5楼 暴风雪282
好的丶   估计也是这原因吧  其实我也不是非要四钻牛角尖丶 只是很好奇而已丶     
                     
2011-10-09 09:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
这个问题跟编译器默认的unsigned状态有关。你使用的编译器,明显是用unsigned的,但书上说的,是signed的。C语言并没有规定int、long之类说明符必须是带符号还是不带符号,但一般认为保守起见,应以默认带符号的考虑。

授人以渔,不授人以鱼。
2011-10-09 10:02
wenwen1314
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2011-9-25
收藏
得分:0 
回复 7楼 TonyDeng
嘿嘿丶 了解啦。
2011-10-10 22:49
快速回复:为什么我求出的答案和讲座上的不一样?求解。。
数据加载中...
 
   



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

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