用JAVA编写程序,计算下面数列的和: 1/3+3/5+5/7+…+95/97+97/99

大家看看我的程序哪里出错了,为什么得出sum=0?publicclassplus{/***@paramargs*/publicstaticvoidmain(String[... 大家看看我的程序哪里出错了,为什么得出sum=0?

public class plus {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,a=1,b;

for(a=1;a<=97;a++)
{
b=a+2;
sum=sum+a/b;
a++;
}
System.out.print(sum);

}
}
展开
 我来答
zhaoyj163em
推荐于2018-03-13 · TA获得超过1033个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:363万
展开全部

因为你的a和b使用的是int类型, 所以a / b 的除号得到的是整除,整除就是 5 / 2 = 2, 1 / 2 = 0, 19 / 3 = 6等等。你应该把sum,a和b的类型都改成double类型就可以了。

public class plus {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
    double sum=0,a=1,b; //改成double
  
    for(a=1;a<=97;a++)
    {
      b=a+2;
     sum=sum+a/b;
     a++;
    }
    System.out.print(sum);
    
 }
}
乐正雁卉d1c01
2014-09-12 · TA获得超过103个赞
知道答主
回答量:80
采纳率:0%
帮助的人:50.5万
展开全部
因为你定义的a和b都是int类型的,a小于b,a/b的结果总是0,所以你得到的sum结果是0,
你可以在计算的过程中将其中的一个数转换成double类型再计算,还有你的sum也要定义成double类型的,还有你的循环条件中要写成(a=1; a<97; a+=2)。希望对你有帮助~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heptnaol
2014-09-12 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1819万
展开全部
int a = 1/3;a的值是0,需要用浮点或者双精度来计算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猫头鹰Ty
2014-09-12 · 超过16用户采纳过TA的回答
知道答主
回答量:52
采纳率:100%
帮助的人:15.4万
展开全部
int/int结果是int类型,a比b小,所以a/b永远==0,因此sum==0;
要想获得小数形式的,只需要把b定义为double型就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-09-12
展开全部
sum改为浮点型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式