簡體   English   中英

Java:查找數組中雙打的平均值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM