我需要創建一個程序來計算最多10個數組的平均值。這裏是要求:用用戶輸入計算平均數組
程序使用方法: 1.Get用戶 2.Calculate用戶 3.打印輸入效果
第一個平均的數字輸入的數字方法應該不帶任何參數並返回用戶輸入的雙精度數組。
第二種方法應該將雙精度數組(上面第一個方法的返回值)作爲其唯一參數並返回一個double(平均值)。
第三種方法應該將雙精度數組和雙精度數值作爲參數,但是沒有返回值。
我嘗試了下面的內容,但是我遇到的最大問題(至少我可以告訴)是程序在允許用戶輸入之前打印兩個語句。我知道如何做到這一點,但我想我因爲數組片而感到困惑。非常感謝。
public static void main(String[] args) {
double[] userNumbers = printUserNums();
double average = getAverage(userNumbers);
printAverage(average, userNumbers);
}
public static double[] printUserNums() {
Scanner in = new Scanner(System.in);
System.out.print("Please enter five to ten numbers separated by spaces: ");
double[] userNums = new double[10];
return userNums;
}
public static double getAverage(double[] userNums) {
Scanner in = new Scanner(System.in);
int counter = 0;
double average = 0.0;
double sum = 0;
for (int i = 0; i < userNums.length; i++) {
sum = sum + userNums[i];
}
if (counter != 0) {
average = sum/userNums.length;
}
return average;
}
public static void printAverage(double average, double[] userNums) {
System.out.printf("The average of the numbers " + userNums + " is %.2f", average);
}
}
爲什麼在'printUserNums()'中創建並返回一個空數組?你甚至沒有閱讀用戶輸入。 – Logan
爲什麼你需要方法的第一行:'getAverage()'? – alfasin
您的方法printUserNums()中的數組永遠不會初始化。您需要將掃描器的值分配給陣列。看到這裏 - https://stackoverflow.com/questions/2795350/how-to-put-a-scanner-input-into-an-array-for-example-a-couple-of-numbers – Amit