搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 当n>=64是为什么会出错
标题:
当n>=64是为什么会出错
只看楼主
chrispull
等 级:
新手上路
帖 子: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
算你狠
等 级:
新手上路
帖 子:5
专家分:7
注 册:2009-11-8
第
2
楼
得分:0
奇怪没问题啊
2009-11-09 19:49
chrispull
等 级:
新手上路
帖 子:30
专家分:1
注 册:2009-8-31
第
3
楼
得分:0
你试一就知道
2009-11-09 20:11
UserYuH
来 自:毅华
等 级:
火箭侠
威 望:
8
帖 子:720
专家分:3300
注 册:2009-8-10
第
4
楼
得分:0
如编译器int为4字节就没问题。
如编译器int为2字节,i=64,(i*i*i)就溢出,加个强制转换类型。
y+=1.0/((long)i*i*i);
努力—前进—变老—退休—入土
2009-11-09 20:14
chrispull
等 级:
新手上路
帖 子:30
专家分:1
注 册:2009-8-31
第
5
楼
得分:0
不行,运行输出错误信息:Floating point error: Divide by o,
2009-11-09 20:36
UserYuH
来 自:毅华
等 级:
火箭侠
威 望:
8
帖 子:720
专家分:3300
注 册:2009-8-10
第
6
楼
得分:0
printf("%d,%
l
f",i,y);你输出格式不对。加个L
努力—前进—变老—退休—入土
2009-11-09 20:46
chrispull
等 级:
新手上路
帖 子:30
专家分:1
注 册:2009-8-31
第
7
楼
得分:0
你试一试,还是不行啊
2009-11-09 20:54
fuqingjun
来 自:山东
等 级:
论坛游民
帖 子:48
专家分:80
注 册:2009-11-2
第
8
楼
得分:0
回复 7楼 chrispull
别哭我想想哈
我是猪猪,我很想进步,寻志同道合者革命途中并肩行路!
2009-11-09 22:10
fuqingjun
来 自:山东
等 级:
论坛游民
帖 子:48
专家分:80
注 册:2009-11-2
第
9
楼
得分:0
除了溢出和格式问题,我想不出来了 ,语法和算法都没问题。你还是 继续哭吧。。。。。。
我是猪猪,我很想进步,寻志同道合者革命途中并肩行路!
2009-11-09 22:20
疯狂二进制
等 级:
新手上路
帖 子:1
专家分:0
注 册:2009-11-9
第
10
楼
得分: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
12
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-291697-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.855414 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved