| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 853 人关注过本帖
标题:当n>=64是为什么会出错
只看楼主 加入收藏
chrispull
Rank: 1
等 级:新手上路
帖 子:30
专家分:1
注 册:2009-8-31
结帖率:50%
收藏
 问题点数:0 回复次数:11 
当n>=64是为什么会出错
main()
 {
   int n,i=1;
   double y=0.;
   printf("Please Input n");
   scanf("%d",&n);
   while(i<=n)
    {
      y+=1.0/(i*i*i);
      i++;
     }
   printf("%d,%f",i,y);
   getch();
 }
搜索更多相关主题的帖子: double 
2009-11-09 19:46
算你狠
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2009-11-8
收藏
得分:0 
奇怪没问题啊
2009-11-09 19:49
chrispull
Rank: 1
等 级:新手上路
帖 子:30
专家分:1
注 册:2009-8-31
收藏
得分:0 
你试一就知道

2009-11-09 20:11
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
如编译器int为4字节就没问题。
如编译器int为2字节,i=64,(i*i*i)就溢出,加个强制转换类型。
y+=1.0/((long)i*i*i);

努力—前进—变老—退休—入土
2009-11-09 20:14
chrispull
Rank: 1
等 级:新手上路
帖 子:30
专家分:1
注 册:2009-8-31
收藏
得分:0 
不行,运行输出错误信息:Floating point error: Divide by o,
2009-11-09 20:36
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
printf("%d,%lf",i,y);你输出格式不对。加个L

努力—前进—变老—退休—入土
2009-11-09 20:46
chrispull
Rank: 1
等 级:新手上路
帖 子:30
专家分:1
注 册:2009-8-31
收藏
得分:0 
你试一试,还是不行啊
2009-11-09 20:54
fuqingjun
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:48
专家分:80
注 册:2009-11-2
收藏
得分:0 
回复 7楼 chrispull
别哭我想想哈

我是猪猪,我很想进步,寻志同道合者革命途中并肩行路!
2009-11-09 22:10
fuqingjun
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:48
专家分:80
注 册:2009-11-2
收藏
得分:0 
除了溢出和格式问题,我想不出来了 ,语法和算法都没问题。你还是 继续哭吧。。。。。。

我是猪猪,我很想进步,寻志同道合者革命途中并肩行路!
2009-11-09 22:20
疯狂二进制
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-9
收藏
得分:0 
试试这:
main()
{
   int n;
   long i=1;
   double y=0.0;
   clrscr();
   printf("Please Input n:");
   scanf("%d",&n);
   while(i<=n)
    {
      y+=1.0/(i*i*i);
      i++;
     }
   printf("%ld,%lf",i,y);
   getch();
}
2009-11-09 23:00
快速回复:当n>=64是为什么会出错
数据加载中...
 
   



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

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