| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2126 人关注过本帖
标题:修正程序错误 计算:1-1/2+1/3-1/4...-1/50
只看楼主 加入收藏
SD7436
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2008-8-12
结帖率:100%
收藏
 问题点数:0 回复次数:8 
修正程序错误 计算:1-1/2+1/3-1/4...-1/50
//本人系初学这,还有请各位大虾帮忙解决下,多谢
//计算1-1/2+1/3-1/4...-1/50的值
public class Three
{
        static float suzi(int x)
        {
            float s;
            if(x%2==0)
            {s=-1/x;}
            else
            {s=1/x;}
            return(s);
        }
        public static void main(String ags[])
        {
            int n;
            float sum=0f;
            for(n=1;n<=50;n++)
            {sum=sum+suzi(n);}
            System.out.println("所求和为:"+sum);
        }
}
搜索更多相关主题的帖子: 程序错误 
2008-09-30 23:52
zacom
Rank: 2
等 级:论坛游民
威 望:2
帖 子:381
专家分:15
注 册:2007-9-15
收藏
得分:0 
看了...是返回值问题....LZ把static float suzi(int x) 改为static float suzi(float x)就可以了..

没有最好只有更好
2008-10-01 13:50
zxwkayajzdd
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-1
收藏
得分:0 
看了一下可能是返回值的问题:把static float suzi(int x) 改为float suzi(int x)
2008-10-01 14:13
恋家的游客
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-1
收藏
得分:0 
s=1/x的问题.
1/x会把结果先转成int型,之后再付给s.这样在x大于2之后,1/x全都变成0.
改的方法:将x计算前变成float就可以了
2008-10-02 00:21
SD7436
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2008-8-12
收藏
得分:0 
2楼的朋友,谢谢,程序过了
但有个问题,和4楼的答复有关
为什么static float suzi(float x)一定要用float?而不能用int呢?s不是已经定义为float类型了吗?那么s=1/x和s=-1/x不都会自动转成float类型吗?
2008-10-02 07:12
zacom
Rank: 2
等 级:论坛游民
威 望:2
帖 子:381
专家分:15
注 册:2007-9-15
收藏
得分:0 
这个因为你先定义X是INT行。。然后再用1/x求出的也是INT型。。至于LZ说已经定义了FLOAT s..你可以看成是S=(FLOAT)1/X强制类型转换。。

没有最好只有更好
2008-10-02 09:41
SD7436
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2008-8-12
收藏
得分:0 
回复 6# zacom 的帖子
原来如此~~
有劳了,明白了,十分感谢Thank you
2008-10-02 11:04
伤狼
Rank: 1
等 级:新手上路
威 望:2
帖 子:58
专家分:0
注 册:2008-10-10
收藏
得分:0 
多看看书 就不会出现这种问题了  这是最简单的问题了 数据类型之间的转换和 优先级 没有搞清楚
2008-10-10 14:52
hacker507
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-10-6
收藏
得分:0 
public class Three
{
        static float suzi(float n)
       {
            float s;
          if(n%2==0)
            s=-1/n;
           else
           s=1/n;
           return s;
       }
        public static void main(String ags[])
        {
            int n;
            float sum=0;
           for(n=1;n<=50;n++)
            {sum=sum+suzi(n);}
            System.out.println("所求和为:"+sum);
        }
}
2008-10-10 23:03
快速回复:修正程序错误 计算:1-1/2+1/3-1/4...-1/50
数据加载中...
 
   



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

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