当前位置: 代码迷 >> Java相关 >> 帮做道题
  详细解决方案

帮做道题

热度:304   发布时间:2007-05-22 22:07:07.0
帮做道题
从键盘输入多个正整数,每输入一个数就回车一次,当遇到输入的数为负数时,结束键盘读取;然后计算输入的正整数的平均值并打印结果。
请高手帮写下程序,加点注释,谢谢
搜索更多相关的解决方案: 整数  键盘  打印  平均值  注释  

----------------解决方案--------------------------------------------------------
import java.util.*;
public class Average
{
public static void main(String[] args)
{
int sum=0;
int i=1; //计算输入了多少个数字.
do
{
System.out.println("请输入正整数,以负数结束循环:");
Scanner a=new Scanner(System.in);
int b=a.nextInt();
if (b<0)
break;
sum=sum+b;
i++;
}
while(i>0);
double average=sum/(i-1);
System.out.println("你输入的正整数之和的平均值为:"+average);
}
}
----------------解决方案--------------------------------------------------------
出错了哈 不好意思 忘了考虑精度问题
import java.util.*;
public class Average
{
public static void main(String[] args)
{
double sum=0.0;
double i=1.0; //计算输入了多少个数字.
do
{
System.out.println("请输入正整数,以负数结束循环:");
Scanner a=new Scanner(System.in);
int b=a.nextInt();
if (b<0)
break;
sum=sum+b;
i++;
}
while(i>0);
double average=sum/(i-1);
System.out.println("你输入的正整数之和的平均值为:"+average);
}
}

----------------解决方案--------------------------------------------------------
i=1.0为什么从1开始。。。average=sum/(i-1),i-1是什么。。还有while(i&gt;0),sum+=b,i++如果我输入的数是5,就把5加进SUM,i++指的是输入第二个数的值吗?i-1就真的不明白了
----------------解决方案--------------------------------------------------------

不管怎么,你要先输入数吧,所以从1开始.
因为,你如果输入了负数,那么,i-1 代表你输入正数的个数.
I++,是代表你输入数的个数.


----------------解决方案--------------------------------------------------------
i-1不是零吗,再解释一点点,我就明白了
----------------解决方案--------------------------------------------------------
[QUOTE]System.out.println("请输入正整数,以负数结束循环:");
Scanner a=new Scanner(System.in);
int b=a.nextInt();
if (b<0)
break;
sum=sum+b;
i++;[/QUOTE]
这里I++;这时i不就等于2了吗?
----------------解决方案--------------------------------------------------------
哦,明白了,2,i-1说明你输入了一个正整数,如果你输入两个正整数,i=3,3-1,因为是从1开始的,喝喝,谢了
----------------解决方案--------------------------------------------------------
请指教!
import java.util.*;
public class Pingjun {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
double t=0;
boolean p=true;
int i=0;
while(p)
{
int b=in.nextInt();
if(b<0)
{
p=false;
break;
}
t=t+b;
i++;
}
System.out.println(t/i);
}
}

----------------解决方案--------------------------------------------------------
  相关解决方案