【问题标题】:Displaying an individual student's mark显示个别学生的分数
【发布时间】:2014-04-10 03:32:30
【问题描述】:

我必须编写一个程序来收集作业的总数和每个作业的学生分数。该程序返回每个学生的作业分数。这是我现在的输出窗口:

班上有多少学生? 2 用户输入 = assignmentLimit

你分配了多少作业? 2 用户输入 = studentLimit

作业 1 分数:

学生 1: 41 用户输入

学生 2:52 用户输入

作业 2 分:

学生 1:74 用户输入

学生 2:85 用户输入

学生 1 分

41.0

52.0

学生 2 分

74.0

85.0

但在学生 1 分部分下,我希望它显示 41.0 和 74.0。对于学生 2 的分数,我想显示 52.0 和 85.0。我该怎么做?这是收集和显示标记的部分:

double[][] mark = new double[assignmentLimit][studentLimit];
    for (index = 0; index < assignmentLimit; index++)
    {
        System.out.println("\nAssigment " + (index + 1) + " marks:");
        for (int studentMark = 0; studentMark < studentLimit; studentMark++)
        {
            System.out.print("\nStudent " + (studentMark + 1) + ": ");
            mark[index][studentMark] = Integer.parseInt(console.readLine());
        } // end of for(int index = 0; index < ARRAY_LIMIT; index++)
    }

    for (index = 0; index < studentLimit; index++)
    {  
        System.out.println("\nStudent " + (index + 1) + " marks");
        for (int studentMark = 0; studentMark < assignmentLimit; studentMark++)
        {
            System.out.println("\t" + mark[index][studentMark]);
        }
    }

【问题讨论】:

  • 阅读手册中的格式说明符

标签: java arrays


【解决方案1】:

试试这个:

double[][] mark = new double[assignmentLimit][studentLimit];
    for (index = 0; index < assignmentLimit; index++)
    {
        System.out.println("\nAssigment " + (index + 1) + " marks:");
        for (int studentMark = 0; studentMark < studentLimit; studentMark++)
        {
            System.out.print("\nStudent " + (studentMark + 1) + ": ");
            mark[index][studentMark] = Integer.parseInt(console.readLine());
        } // end of for(int index = 0; index < ARRAY_LIMIT; index++)
    }

    for (index = 0; index < studentLimit; index++)
    {  
        System.out.println("\nStudent " + (index + 1) + " marks");
        for (int studentMark = 0; studentMark < assignmentLimit; studentMark++)
        {
            System.out.println("\t" + mark[studentMark][index]); // mark[studentMark][index] but not mark[index][studentMark]
        }
    }

【讨论】:

  • 有效!你能告诉我为什么必须颠倒 studentMark 和 index 吗?谢谢!
  • 在第一个嵌套for循环中,将Assigment 1和Assigment 2的标记设置为标记数组,这意味着标记数组的第一个索引(mark[first index][second index])是索引作业,第二个是学生索引;而在你的第二个嵌套for循环中,for循环中的第一个索引是学生的索引,第二个是作业的索引,所以索引必须颠倒......我希望你能理解我的意思。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 2014-03-27
  • 2021-04-21
  • 1970-01-01
相关资源
最近更新 更多