java中n个数字的平均值

时间:2012-01-07 05:09:03

标签: java

使用循环我想计算Java中n个数字的平均值,当用户输入0时,循环结束。 这是我写的代码:

public class start {
    public static void main(String[] args) {
        System.out.println("Enter an int value, the program exits if the input is 0");
        Scanner input = new Scanner (System.in);
        int h = 0;
        while (input.nextInt() == 0){
            int inp = input.nextInt();
            int j = inp;
            int i = 0;
            h = j + i;
            break;
        }

        System.out.println("The total is: "+ h);
    }
}

我是否犯了任何逻辑错误?

8 个答案:

答案 0 :(得分:1)

“我是否犯了任何逻辑错误?”

是。这看起来像是一个家庭作业问题所以我不会为你拼出来,但想想i的价值是什么,以及h = j + i在这种情况下的含义。

调用input.nextInt()时还需要小心。每次通过循环调用它时会发生什么(这是你在做什么)?

答案 1 :(得分:1)

家庭作业,对吧?

在while循环条件下调用input.nextInt()并填写int inp意味着循环中的每次行程都在读取两个数字(其中一个被忽略)。您需要找到一种方法,每循环迭代只读取一个数字,并将其用于== 0比较和inp

此外,你在while循环之外做了h正确的事情,但我认为你在循环中让你自己感到困惑ji。您可能会考虑使用稍微更具描述性的名称 - 这将使您的代码更易于推理。

答案 2 :(得分:1)

  • 不要命名总和h,而是求和。
  • 时间条件错误
  • 你为什么使用inp和j?
  • 无条件休息 - 为什么?
  • 你谈的是平均值。你知道平均值是多少吗?
  • 您的输出消息与平均值无关 - 它与总和有关。

答案 3 :(得分:0)

您需要记录您阅读的数字,以便将总数除以此数字以获得平均数。

答案 4 :(得分:0)

编辑了while循环:

while(true){
    int e=input.nextInt();
    if(e==0) break;
    h+=e;
    numberOfItems++;
}

您的原始实现称为nextInt()两次,其效果是丢弃所有其他数字(这绝对不是您打算做的)。

答案 5 :(得分:0)

假设您只询问用户一次,输入数字为零,您只想显示平均值。你需要一个在while循环之外声明的变量,它将继续添加用户输入的不同数字,以及跟踪用户输入的个案数量的第二个变量,并保持自己递增1,直到数字不为零,如用户。当用户输入0时,循环将中断,此处将显示我们的平均值。

import java.util.Scanner;

public class LoopAverage
{
    public static void main(String[] args0)
    {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any Integer value : ");
       int value = -1, sum = 0, count = 0;
       while((value = scan.nextInt()) != 0)
       {
         count++;
         sum = sum + value;
       }
       System.out.println("Average : " + (sum / count));
   }
}

希望这可能会有所帮助,

此致

答案 6 :(得分:0)

是的,大量的逻辑错误。

  • 你的while循环条件错误,你正在消耗第一个值 你输入,除非该数字为0,否则你永远不会进入循环
  • 我没有目的
  • 一次迭代后你就崩溃了
  • 你没有计算一个总计
  • 您没有增加平均股息的数量
  • 你没有计算平均值
  • 这看起来像你把一些代码放在一起并发布了。最多 只是试图运行它就会发现明显的错误。

还需要考虑其他一些事项:

  • 确保检查除以0
  • 如果进行整数除法,最终可能会出错 平均值,因为它将是四舍五入的。最好施放除数或 分红到浮动
  • 变量名应该有用,养成使用它们的习惯

答案 7 :(得分:0)

我建议你参考“while”循环的条件:如果条件满足,程序会做什么? (如果你对VB有点了解,那么do ...直到......并且......当......?)

另外,当你调用scanner.nextInt()时,程序会做什么?对于每个输入,您应该如何调用它?

最后但并非最不重要的是,您何时应该使用“休息”或“继续”?

对于基础知识,如果你在课程中,建议你理解笔记。或者你可以找到一些解释Java细节的好书。例如用Java思考

喜欢学习Java。