我怎么能找到这个的平均值?

时间:2014-01-27 03:54:09

标签: java arrays math average

我是java编程的新手,我不知道如何找到数组的平均值,也不知道如何向后打印数组。到目前为止,这是我的代码:

public static void forwards(int nums, int arrayNums[]){
    for(int a=0;a<arrayNums.length;a++){
        nums =(int)(Math.random()*90+10);
        System.out.print(nums+" ");
    }
    System.out.println();
    System.out.println();
    //Average of the array
    int average=0;
    for(int b=0;b<arrayNums.length; b++){
        average=(average+arrayNums[b]);

    }
    System.out.println();
    System.out.println(average);
}

public static void backwards(int nums, int[] arrayNums){
    //backwards of the array
    for(int a=arrayNums.length; a>0;a--){
        System.out.print(nums+" ");
    }
}


public static void main (String [] args){
    int[] arrayNums = new int [Integer.parseInt
            (JOptionPane.showInputDialog("How many numbers do you want to input?"))];
    int nums = 1;
    forwards(nums,arrayNums);
    System.out.println();
    backwards(nums,arrayNums);

4 个答案:

答案 0 :(得分:0)

平均---->

for (int i = 0; i < array.length; i++)
{
 sum += array[i];
}

int avegare =  sum / array.length;

For Backwards ---->

for(int i = Array.length - 1; i >= 0;i--)

答案 1 :(得分:0)

向后应该以{{1​​}}:

开头
arrayNums.length-1

原因是指数从public static void backwards(int nums, int[] arrayNums){ //backwards of the array for(int a=arrayNums.length-1; a >= 0; a--){ System.out.print(arrayNums[a]+" "); } } 变为0。这基本上就是在for循环中发生的事情。

对于平均值,你忘记了除以元素数量的除法......

答案 2 :(得分:0)

这是查找平均值的简单方法。只需将每个元素相加,然后除以数组中元素的总数:

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

这是一种向后的方法。从array.length-1开始,这是最后一个索引。从那里开始,向下迭代i--,然后在i为零时结束。

public static void printBackwards(int[] array)
{
   for(int i  =array.length-1; i>= 0; i--)
  {
    System.out.print(array[i] +" ");
  }
}

调用方法时,这是您应该使用的语法:

double avg = average(arrayNums);
System.out.println(avg);

printBackwards(arrayNums);

答案 3 :(得分:0)

  

“我只是想弄清楚如何找到数组的平均值,也不知道如何向后打印数组。”

  1. 对于平均值,您应该使用其他方法,而不是在forwards方法中尝试

    public static double average(int[] arrayNums) {
        double sum = 0;
        ... 
        double average = // how do you get the average of something?
        return average;
    }
    

    我从基本大纲开始。您基本上需要通过循环数组将所有数字添加到总和中,然后通过将其乘以数组中的总数来获得平均值。然后你可以打印平均值

    double average = average(array);
    System.out.println(average)
    
  2. 对于向后,您要打印arrayNums[a]而不是nums。您还应该从arrayNum.length - 1开始循环,因为数组arrayNums.length中没有索引,因此您将获得ArerayOutOfBounds异常。您还想要第0个索引,因此您想使用>=

     for(int a = arrayNums.length - 1; a >= 0  ;a--) {
          // print arrayNums[a]
    
  3. 您似乎对forwards的{​​{1}}做了同样错误的事情。您想打印每个索引backwards的数组值,而不是a

  4. 我还会用不同的方法

    创建nums数组
    random

    然后你可以做 public static int[] randomArray(int num) { int[] random = new int[nums]; .... may array by looping return random; }

    main
  5. 如您所见,我没有将 int[] array = randomArray(num); forwards(array); backwards(array); double average = average(array); System.out.println(average); 传递给方法。我认为你应该从方法签名中取出tha参数。我觉得没用。