Java 多维数组和方法

Java 多维数组和方法,java,methods,multidimensional-array,Java,Methods,Multidimensional Array,我有一个家庭作业,程序会生成随机数目的学生参加随机数目的测试。用户必须输入学生姓名和考试成绩。完成后,程序将在屏幕上打印:Fred的学生报告分数: 测试#1:78 测试#2:80 弗雷德的平均值:79.0 苏的分数: 测试#1:91 测试#2:94 苏的平均数:92.5 。。。这取决于你得到的学生人数和考试次数 我把每件事都做好了,直到达到平均水平。我怎么能把它修好呢 这是我的密码: public static void populateNames(String[] names) {

我有一个家庭作业,程序会生成随机数目的学生参加随机数目的测试。用户必须输入学生姓名和考试成绩。完成后,程序将在屏幕上打印:Fred的学生报告分数: 测试#1:78 测试#2:80 弗雷德的平均值:79.0 苏的分数: 测试#1:91 测试#2:94 苏的平均数:92.5

。。。这取决于你得到的学生人数和考试次数

我把每件事都做好了,直到达到平均水平。我怎么能把它修好呢

这是我的密码:

   public static void populateNames(String[] names)
   {
     for(int i = 0; i<names.length; i++)
     {
       out.print("Enter student " + (i+1) + " name: ");
       names[i] = keyboard.next();
     }
   } 

  // Code your 3 methods below...
 //Ask the user for the student name as well as the test scores
   public static void populateTestScores(String[] names, int[][] scores)
   {
     out.println();
     for(int i=0; i<names.length; i++)
     {
        out.println();
        out.println("Entering scores for: " + names[i]);

        for(int s=0; s<scores[0].length; s++)
        {
            out.print("Enter score for test #" + (s+1) + ": ");
            scores[i][s] = keyboard.nextInt();
        }
    }
    out.println();
}

  //Print each studdent test scores and ther average
  public static void printStudentReport(String[] names, int[][] scores)
  {
    out.println("STUDENT REPORT");
    for(int i=0; i<names.length; i++)
    {
        out.print("Scores for " + names[i] + ": ");
        out.println();

        for(int s=0; s<scores[0].length; s++)
        {
            out.println("Test #" + (s + 1) +  ": " + scores[i][s]);
        }
        out.println();
    int s=0;
    if(s<scores[0].length)
    {
        s++;
        double sum = 0;
        sum += scores[i][s];
        double average = sum / scores[0].length;
        out.println("Average for " + names[i] + ": " + average);
        out.println();
    }
    }
    out.println();
  }
公共静态void populateNames(字符串[]名称)
{

对于(int i=0;i问题在于您在
printsudentreport
中计算
sum
的方式:它只包含分数列表中的第二个元素,因为您在
for
循环之后创建并添加到
sum
(而不是在循环之前创建并添加)

我将该方法重新安排为(为紧凑性重新格式化):

//打印每个学生的考试分数和平均值
公共静态void printStudentReport(字符串[]名称,整数[][]分数){
out.println(“学生报告”);
for(int i=0;i
它做了什么不想做的事情?您希望它做什么?请阅读抱歉。它没有给我正确的平均值,它还打印了弗雷德的学生报告分数:测试1:89平均43测试2:sue的平均32分:测试1:90平均40测试2:90平均50,依此类推,它打印了每个测试分数的平均值。所以它会在学生报告之后的每一行打印平均值,我只想在循环结束之前的最后一行打印(int i=0;我刚刚更正了我的代码。虽然平均值一直不正确,但我不知道这是与我的计算有关还是其他原因。请帮助。我需要在2天内完成这项工作。问题不清楚。预期输出是否真的是一长行文本?请编辑问题以清楚显示预期输出和d还需要显示实际输出。您正在向这里的人寻求帮助解决您的问题,请让我们在不做大量工作的情况下轻松了解您想要什么。如果您的问题确实很紧急,请让我们轻松快速了解。添加您的输出。不清楚您对输出的期望。
// Print each studdent test scores and ther average
public static void printStudentReport(String[] names, int[][] scores) {
    out.println("STUDENT REPORT");
    for (int i = 0; i < names.length; i++) {
        out.print("Scores for " + names[i] + ": ");
        out.println();

        double sum = 0;
        for (int s = 0; s < scores[0].length; s++) {
            out.println("Test #" + (s + 1) + ": " + scores[i][s]);
            sum += scores[i][s];
        }
        out.println();
        if (0 < scores[0].length) {
            double average = sum / scores[0].length;
            out.println("Average for " + names[i] + ": " + average);
            out.println();
        }
    }
    out.println();
}