[英]Creating an Array filled with Random doubles and finding the Maximum and Average
[英]Java: Finding average of doubles in array
我正在為Java類簡介做作業。 作業的一部分是將文本文件中的雙精度讀入數組,然后使用其他方法來計算平均值。 到目前為止,我已經將雙精度數讀入了數組,但是我不確定如何在另一種方法中引用該數組來計算平均值。 我一直在網上搜索,但未找到任何結果,可能是因為我的術語不正確導致我沒有相關的答案。 我從netbeans中收到一個錯誤,指出找不到符號classGrades(因為它僅在main方法中)。我嘗試將它定義為全局變量,但這沒有用,而且我們還沒有學到這些必須有另一種方式來做到這一點。
總結一下:我不知道如何在方法之間引用變量。
這是我的代碼
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;
public class GradeChecker {
public static void main(String[] args) {
// TODO code application logic here
double[] classGrades = new double[76];
double classAverage = calculateAverageGrade();
fillArray(classGrades);
for (int i = 0; i < classGrades.length; i++) {
System.out.println(classGrades[i]);
}
//System.out.print(Arrays.toString(classGrades));
System.out.print(classGrades.length);
}
public static void fillArray(double[] ary) {
try {
File arrayInput = new File("ClassGrades.txt");
Scanner in = new Scanner(arrayInput);
in.useDelimiter("\r\n");
int i = 0;
while (in.hasNextLine()) {
ary[i++] = in.nextDouble();
}
in.close();
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
}
private static double calculateAverageGrade(double[] classGrades) {
double gradeSum = 0;
double gradeAverage = 0;
for (int i = 0.0; i < classGrades.length; i++) {
gradeSum = gradeSum + classGrades[i];
}
gradeAverage = gradeSum/classGrades.length;
return gradeAverage;
}
}
您可以將數組classGrades
傳遞給該函數:
double[] classGrades = new double[76];
double classAverage = calculateAverageGrade(classGrades);
這里:
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;
public class GradeChecker {
public static void main(String[] args) {
// TODO code application logic here
double[] classGrades = new double[76];
double classAverage = calculateAverageGrade(classGrades);
fillArray(classGrades);
for (int i = 0; i < classGrades.length; i++) {
System.out.println(classGrades[i]);
}
//System.out.print(Arrays.toString(classGrades));
System.out.print(classGrades.length);
}
public static void fillArray(double[] ary) {
try {
File arrayInput = new File("ClassGrades.txt");
Scanner in = new Scanner(arrayInput);
in.useDelimiter("\r\n");
int i = 0;
while (in.hasNextLine()) {
ary[i++] = in.nextDouble();
}
in.close();
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
}
private static double calculateAverageGrade(double[] classGrades) {
double gradeSum = 0;
double gradeAverage = 0;
for (int i = 0; i < classGrades.length; i++) {
gradeSum = gradeSum + classGrades[i];
}
gradeAverage = gradeSum / classGrades.length;
return gradeAverage;
}
}
我已經編輯了您的代碼。
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;
public class GradeChecker {
public static void main(String[] args) {
// TODO code application logic here
double[] classGrades = new double[76];
fillArray(classGrades);
double classAverage = calculateAverageGrade(classGrades);
for (int i = 0; i < classGrades.length; i++) {
System.out.println(classGrades[i]);
}
//System.out.print(Arrays.toString(classGrades));
System.out.print(classGrades.length);
}
public static void fillArray(double[] ary) {
try {
File arrayInput = new File("ClassGrades.txt");
Scanner in = new Scanner(arrayInput);
in.useDelimiter("\r\n");
int i = 0;
while (in.hasNextLine()) {
ary[i++] = in.nextDouble();
}
in.close();
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
}
private static double calculateAverageGrade(double[] classGrades) {
double gradeSum = 0;
double gradeAverage = 0;
for (int i = 0; i < classGrades.length; i++) {
gradeSum = gradeSum + classGrades[i];
}
gradeAverage = gradeSum/classGrades.length;
return gradeAverage;
}
}
請嘗試這個,讓我知道
編輯1
fillArray
之后調用fillArray
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.