首页 > 解决方案 > 二维数组嵌套的列行而不是行列

问题描述

我正在准备一个基于多项选择测试的程序。

int[][] answers = {
    {3, 4, 2, 5, 0, 2, 1, 3, 2, 4},
    {0, 0, 2, 1, 5, 4, 1, 2, 3, 1},
    {3, 3, 2, 5, 4, 1, 2, 5, 0, 3},
    {3, 4, 4, 5, 3, 5, 4, 0, 3, 1}
};

int[] correctA = {3, 4, 2, 5, 4, 3, 1, 2, 3, 1};

有4个学生。我想知道哪个问题被选错、正确或留空了多少次。我发现哪个学生使用嵌套的 for 选择了错误、正确或留空了多少次(通过像第一行、第一列、 第一行第二列一样),但现在我不能这样做(现在我想就像第一行第一列,第二行第一列)。

例子:

第一个问题:

3名学生选对,1名学生选错

标签: javaarrayseclipse

解决方案


您的内部循环将迭代学生。

您的外部循环变量应该是一个整数索引,从 0 到问题总数(最好这应该在某处定义为常量,但我们将使用correctA.length)。

    for(int question=0; question < correctA.length; question++) {
        int correct = correctA[question];
        for (int[] student : answers) {
            int answer = student[question];
            // Check answer==correct ?
        }
    }

推荐阅读