【问题标题】:Why am I not getting the right average in my java code?为什么我的 java 代码没有得到正确的平均值?
【发布时间】:2013-12-16 02:37:03
【问题描述】:

所以我正在处理一项任务,并且几乎是在使用方法并返回。到目前为止,我的代码应该打印数组中的数字,然后将这些数字取平均值。我必须使用他们给出的确切格式给出的方法,但我不确定为什么平均值出现错误。它打印 521674.2 作为平均值,这显然是错误的。这是我的代码:

public class Statistics
{

    public static void main(String[] args)
    {
        int[] nums = new int[]{5, 2, 1, 6, 7};

        printArray(nums);
        average(nums);
        double store = average(nums);
        System.out.println(store);
    }


    public static void printArray(int[] nums) {
        for(int i = 0; i < nums.length; i++){ 
            System.out.print(nums[i]); 
            }
    }


    public static double average(int[] values) {
        int sum = 0;
        double average;

        for(int i=0; i < values.length; i++){
            sum = sum + values[i];
        }
        average = (double)sum/values.length;
        return average;   

【问题讨论】:

  • 嗯,因为printArray
  • 为什么不使用java.util.Arrays.toString()

标签: java arrays methods return


【解决方案1】:

实际上,它打印了数组 (52167),然后打印了平均值 (4.2)。

为了改善这一点,您可能希望在printArray 的最后加上一个System.out.println();,这样输出就在自己的行上。

您可能还需要一个分隔符,例如,,以便打印5,2,1,6,7。例如:

public static void printArray(int[] nums) {
    for (int i = 0; i < nums.length - 1; i++) { 
        System.out.print(nums[i]);
        System.out.print(","); 
    }
    if (nums.length > 0) { // make sure array isn't empty
        System.out.println(nums[nums.length - 1]);
    }
}

【讨论】:

    【解决方案2】:

    您的代码没有问题。由于输出,您会感到困惑。

    如果您评论处理printArray() 的行,或将其System.out.print() 更改为System.out.println(),那么您将看到您所期望的结果。

    【讨论】:

      【解决方案3】:

      目前,您的代码正在同一行打印数组的内容和平均值,中间没有空格。去掉 printArray() 调用,你可以看到它只会输出平均的4.2,这是正确的:

      public static void main(String[] args) {
          int[] nums = new int[] { 5, 2, 1, 6, 7 };
      
          //printArray(nums);
          average(nums);
          double store = average(nums);
          System.out.println(store);
      }
      

      【讨论】:

        【解决方案4】:

        你应该使用 .println() 而不是 print() 就可以了

        【讨论】:

          猜你喜欢
          • 2016-05-05
          • 1970-01-01
          • 2022-06-28
          • 2013-08-19
          • 2017-10-30
          • 1970-01-01
          • 1970-01-01
          • 2017-11-26
          • 2021-03-22
          相关资源
          最近更新 更多