这是原始提示:
编写程序,声明一个名为得分的二维二维数组,包含三行和三列。使用嵌套的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循环感到困惑。
答案 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
,您需要存储值并计算平均值。
看起来像家庭作业代码。我们可以给你提示,但不是为你写的:(