2017-02-16 29 views
1

我知道我不能像我这样做传递数组。如果是的话,我需要通过参考吗?这个问题在底部作为参考。在java中传递数组

import java.util.Scanner; 
public class MethodsArrays { 

    public static int[] fillArray() { 
     Scanner scan = new Scanner(System.in); 
     int size = scan.nextInt(); 
     int array[] = new int[size]; 
     int pos=0; 

     for(int i=0; i<array.length; i++) { 
      pos=i+1; 
      System.out.println("Enter element " + pos); 
      array[i]=scan.nextInt(); 
     } 
     return array; 
    } 

    public static int sumArray(int [] array) { 
     int sum=0; 

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

    public static int avgArray(int [] array) { 
     int avg=0; 
     int sum = sumArray(array); 
     avg = sumArray(array)/array.length-1; 
     return avg; 
    } 

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

    public static void main(String[] args) { 
     fillArray(); 
     System.out.println("Sum=" + sumArray(array)); 
     System.out.println("Average=" + avgArray(array)); 
     printArray(array); 
    } 
} 

写Java程序,称为MethodsArrays有4种静态方法 称为fillArray(),sumArray(),avgArray(),和printArray()。应该从main方法中调用 fillArray()方法。 fillArray()方法应该使用扫描器获取表示数组长度的数字 ,然后读取数字以填充 该数组。 sumArray()方法应接受一个int数组作为其输入 参数,并返回一个整数值,该值是数组中所有元素的总和。 avgArray()方法应该以int数组 作为输入参数,并返回一个整数值,该值是数组中所有元素的平均值。 printArray()方法 应将int数组作为其输入参数,并且没有返回值 值。然后它应该在由空格(“”)分隔的相同的 行中打印出阵列的元素。所有方法都应该用于整数 数组。

+1

你必须少的问题,如果你会真正关心什么'fillArray()'返回...... – Tom

+0

你为什么不能传递数组你正在做的方式吗?您只需将调用的结果存储到名为array的变量中的'fillArray()',以便变量名实际存在,您可以在以下调用中使用它。 –

+1

我认为你需要将fillArray()结果赋值给一个变量,如int [] array = fillArray(); –

回答

2

您的代码看起来不错。您只需将fillArray()的结果赋值给一个变量,以便将此结果用于其他方法。

它看起来像:

int[] array = fillArray(); 
System.out.println("Sum=" + sumArray(array)); 
System.out.println("Average=" + avgArray(array)); 
printArray(array); 
+1

在'avgArray'方法中,OP除以'array.length-1'。不知道它是否打算。 –