java - 将文件中的整数存储到数组中并查找平均 JAVA

标签 java arrays java.util.scanner average

在此程序中,您将找到一个菜单,其中包含对阵列执行不同功能的选项。该数组取自名为“data.txt”的文件。该文件包含整数,每行一个。我想创建一个方法来将这些整数存储到数组中,这样我就可以在需要完成计算时调用该方法。显然,我没有包含完整的代码(太长了)。然而,我希望有人能帮助我解决计算平均值的第一个问题。现在,控制台打印平均值 0,因为除了文件中的 1、2、3 之外,数组的其余部分都填充了 0。我想要的平均值是 2。欢迎任何建议。我的程序的一部分如下。谢谢。

public static void main(String[] args) throws FileNotFoundException {
    Scanner sc = new Scanner(System.in);
    System.out.println("Welcome to Calculation Program!\n");
    startMenus(sc);

}

private static void startMenus(Scanner sc) throws FileNotFoundException {
    while (true) {
        System.out.println("(Enter option # and press ENTER)\n");

        System.out.println("1. Display the average of the list");
        System.out.println("2. Display the number of occurences of a given element in the list");
        System.out.println("3. Display the prime numbers in a list");
        System.out.println("4. Display the information above in table form");
        System.out.println("5. Save the information onto a file in table form");
        System.out.println("6. Exit");

        int option = sc.nextInt();

        sc.nextLine();

        switch (option) {
            case 1:
                System.out.println("You've chosen to compute the average.");
                infoMenu1(sc);
                break;
            case 2:
                infoMenu2(sc, sc);
                break;
            case 3:
                infoMenu3(sc);
                break;
            case 4:
                infoMenu4(sc);
                break;
            case 5:
                infoMenu5(sc);
                break;
            case 6:
                System.exit(0);
            default:

                System.out.println("Unrecognized Option!\n");
        }

    }
}

private static void infoMenu1(Scanner sc) throws FileNotFoundException {
    File file = new File("data.txt");
    sc = new Scanner(file);

    int[] numbers = new int[100];

    int i = 0;

        while (sc.hasNextInt()) {
            numbers[i] = sc.nextInt();
            ++i;
        }

    System.out.println("The average of the numbers in the file is: " + avg(numbers));
}

public static int avg(int[] numbers) {
    int sum = 0;
    for (int i = 0; i < numbers.length; i++) {
        sum = (sum + numbers[i]);
    }
    return (sum / numbers.length);
}

最佳答案

只需按如下方式修改您的方法:
public static int avg(int[]numbers, int len)其中len是实际存储的数字。
在您的情况下,您可以调用:

System.out.println("The average of the numbers in the file is: " + avg(numbers, i));  

在你的平均代码中:

 for (int i = 0; i < len; i++) {
        sum = (sum + numbers[i]);
    }  

即将 numbers.length 替换为传入的 len

并执行return (sum/len);

关于java - 将文件中的整数存储到数组中并查找平均 JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315648/

相关文章:

java - 一个 ListView 中的多个列表

Java - 我是否正确地读取了该文件中的文本?

java - zip 文件的内容写入不正确

java - Android - 在多个 Activity 中访问数组

java - 字符(运算符)的扫描仪输入如何工作?

java - Android:当我从最近的应用程序按钮关闭应用程序时,不会调用 OnDestroy

c# - 识别段链的算法

C:图像(数组)的索引公式,在嵌套for循环中更新索引

java - 如何根据 .txt 文件信息创建对象并分配给数组列表?

java - .hasNextInt 的替代方法?