2D阵列分数

时间:2016-03-22 18:39:00

标签: java

这是原始提示:

编写程序,声明一个名为得分的二维二维数组,包含三行和三列。使用嵌套的while循环在命令行中从用户获取九(3 x 3)个双精度数。最后,使用嵌套for循环计算每行中双精度的平均值,并将这三个平均值输出到命令行。

这是我的代码:

import java.util.Scanner;

public class Scorer {


public static void main(String[] args) {

    Scanner scnr = new Scanner(System.in);

    double [][] scores = new double[3][3];
    double value = 0;

    int i = 0;
    int j;

    while (i < 3) {

        j = 0;

        while (j < 3) {
            System.out.print("Enter a number: ");
            value = scnr.nextDouble();
            scores[i][j] = value;
            j++;
        }
        i++;
    }

    int average = 0;

    for (i = 0; i < scores.length; i++) {

        for (j = 0; j < scores[i].length; j++) {
            average += value;
            value = value / scores[i][j];
            System.out.println(value);
        }
    }

}

}

我需要帮助的部分是代码底部的嵌套for循环。该代码应该计算输入数字的平均值;但是,我对如何使用嵌套for循环感到困惑。

2 个答案:

答案 0 :(得分:2)

你快到了! 以下是您需要做的事情:

1)您已初始化变量&#39; average&#39;在第一个for循环之后。 因为平均值需要为0,即每次循环后第二次结束后重置。

2)您已定义&#34; value = value / scores [i] [j]&#34; 。我不知道你为什么这样做,但是&#34; value = scores [i] [j]&#34;必须解决你的问题。

3)你应该打印平均三次,即在计算每行的平均值之后。所以,打印平均值在第二秒结束时循环。

希望这说清楚。 这里是您参考的代码:

for (i = 0; i < 3; i++) {
    int average = 0;
    for (j = 0; j < 3; j++) {
        value = scores[i][j];
        average += value;           
    }
        System.out.println(average/3);       
}

答案 1 :(得分:1)

永久i代表一行,每j代表一列。

您需要每行的平均值,这意味着对于i的每个j和每个i,您需要存储值并计算平均值。

看起来像家庭作业代码。我们可以给你提示,但不是为你写的:(