2017-02-16 56 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'。不知道它是否打算。 –