Java 在二维数组中添加每列
在2D数组中添加每列时遇到问题。似乎我的代码没有正确添加列,因此我无法计算正确的平均值。我可以添加并获得每行的平均值,但我不知道列的情况。我的代码中一定有点小错误,请帮我找到Java 在二维数组中添加每列,java,arrays,Java,Arrays,在2D数组中添加每列时遇到问题。似乎我的代码没有正确添加列,因此我无法计算正确的平均值。我可以添加并获得每行的平均值,但我不知道列的情况。我的代码中一定有点小错误,请帮我找到 另外,我的数组是int book[3][4],每个列都有学生,所以我总共有4个学生,我也有4个列 public void AverageStudent(int[][] book) //columns { double average1 = 0; double sum1 = 0; fo
另外,我的数组是int book[3][4],每个列都有学生,所以我总共有4个学生,我也有4个列
public void AverageStudent(int[][] book) //columns
{
double average1 = 0;
double sum1 = 0;
for (int i = 0; i < book[0].length; i++)
{
for (int k = 0; k < book.length; k++)
{
sum1 += book[i][k];
average1 = sum1 / book.length;
System.out.println("The average of student " + (k+1) + " is " + average1);
sum1 = 0;
}
}
}
public void AverageStudent(int[]book)//列
{
双平均值1=0;
双sum1=0;
for(int i=0;i
这是上面代码给出的输出
12341234
1234
测试1的平均值为2.5 测试2的平均值为2.5 测试3的平均值为2.5 学生一的平均成绩是0.3333 学生2的平均成绩为0.6666 学生3的平均成绩是1.0 四年级学生的平均成绩是1.3333
您需要在第一个
for
循环中声明average1
和sum1
。目前,它们在每个元素之后都会被重置,理想情况下应该在每行之后重置。下面的代码工作正常
public void AverageStudent(int[][] book) {
for (int i = 0; i < book.length; i++) {
double average1 = 0;
double sum1 = 0;
for (int k = 0; k < book[i].length; k++) {
sum1 += book[i][k];
}
average1 = sum1 / book[i].length;
System.out.println("The average of student " + (i + 1) + " is " + average1);
sum1 = 0;
}
}
public void average学生(int[]book){
for(int i=0;i您在这句话中的逻辑错误:sum1+=book[i][k]代码>
它应该是book[k][i]
,因为i
在列上迭代,k
在行上迭代
这应适用于每列的学生平均数:
public void AverageStudent(int[][] book) //columns
{
double average1,sum1;
for (int i = 0; i < book[0].length; i++)
{ sum1 = 0;
average1 = 0;
for (int k = 0; k < book.length; k++)
{
sum1 += book[k][i];
}
average1 = sum1 / book.length;
System.out.println("The average of student " + (i+1) + " is " + average1);
}
}
public void AverageStudent(int[]book)//列
{
双平均值1,sum1;
for(int i=0;i
我的数组是int book[3][4],每个列都有学生,所以我总共有4个学生,我也有4个列。然而,上面的代码只打印出3名学生,并且没有计算出正确的平均值@DarshanMehtaHowever,上面的代码只将“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException:3”@Mohammadoghilk现在用红色下划线,所以我不必移动“System.out.println”(“学生“+(k+1)+”的平均值是“+average1”);“到第二个for循环中吗@Mohammadoghli你有逻辑错误:sum1+=book[i][k]你是什么意思?这正是我所需要的。非常感谢。