Java 我得到了错误的输出,我还需要一个简化的解决方案

Java 我得到了错误的输出,我还需要一个简化的解决方案,java,Java,我遇到了一个问题。代码是: Scanner input = new Scanner(System.in); int time = input.nextInt(); int line = input.nextInt(); input.nextline(); int[][] PrimaryArray = new int[12][11]; int[] Number = new int[12]; boolea

我遇到了一个问题。代码是:

Scanner input = new Scanner(System.in);
        int time = input.nextInt();
        int line = input.nextInt();
        input.nextline();
        int[][] PrimaryArray = new int[12][11];
        int[] Number = new int[12];
        boolean[] dualPass = new boolean[12];
        for (int i = 0; i < 12; i++) {
            dualPass[i] = false;
        }

        for (int i = 0; i < line; i++) {
            int SourceNode = input.nextInt();
            int DistNode = input.nextInt();
            input.nextLine();
            if (SourceNode == 1) {
                    PrimaryArray[SourceNode][Number[1]] = DistNode;
                    Number[1]++;
            }
            if (SourceNode == 2) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[2] = true;
                }
                if (dualPass[2] != true) {
                    PrimaryArray[SourceNode][Number[2]] = DistNode;
                    Number[2]++;
                }
                dualPass[2] = false;
            }
            if (SourceNode == 3) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[3] = true;
                }
                if (dualPass[3] != true) {
                    PrimaryArray[SourceNode][Number[3]] = DistNode;
                    Number[3]++;
                }
                dualPass[3] = false;
            }
            if (SourceNode == 4) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[4] = true;
                }
                if (dualPass[4] != true) {
                    PrimaryArray[SourceNode][Number[4]] = DistNode;
                    Number[4]++;
                }
                dualPass[4] = false;
            }
            if (SourceNode == 5) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[5] = true;
                }
                if (dualPass[5] != true) {
                    PrimaryArray[SourceNode][Number[5]] = DistNode;
                    Number[5]++;
                }
                dualPass[5] = false;
            }
            if (SourceNode == 6) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[6] = true;
                }
                if (dualPass[6] != true) {
                    PrimaryArray[SourceNode][Number[6]] = DistNode;
                    Number[6]++;
                }
                dualPass[6] = false;
            }
            if (SourceNode == 7) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[7] = true;
                }
                if (dualPass[7] != true) {
                    PrimaryArray[SourceNode][Number[7]] = DistNode;
                    Number[7]++;
                }
                dualPass[7] = false;
            }
            if (SourceNode == 8) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[8] = true;
                }
                if (dualPass[8] != true) {
                    PrimaryArray[SourceNode][Number[8]] = DistNode;
                    Number[8]++;
                }
                dualPass[8] = false;
            }
            if (SourceNode == 9) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[9] = true;
                }
                if (dualPass[9] != true) {
                    PrimaryArray[SourceNode][Number[9]] = DistNode;
                    Number[9]++;
                }
                dualPass[9] = false;
            }
            if (SourceNode == 10) {
                for (int j = 0; j < PrimaryArray[DistNode].length; j++) {
                    if (PrimaryArray[DistNode][j] == SourceNode)
                        dualPass[10] = true;
                }
                if (dualPass[10] != true) {
                    PrimaryArray[SourceNode][Number[10]] = DistNode;
                    Number[10]++;
                }
                dualPass[10] = false;
            }

        }
        for (int i = 1; i < 11; i++) {
            System.out.println(PrimaryArray[i][1]);
        }
每个输出必须是第二个成员。我想在这段代码中说,例如:

当我们进入时:12 然后是21 它必须忽略2 1


代码输出错误,我不理解。

对于您的第一个问题,即使是错误的地方,也有答案,只需替换您的

    // ...
    for (int i = 0; i < line; i++) {
        int sourceNode = input.nextInt();
        System.out.println("SourceNode: " + sourceNode);
        int distNode = input.nextInt();
        System.out.println("DistNode: " + distNode );
        input.nextLine();
        // you will get same response with following code instead all your if's:
        for (int j = 0; j < primaryArray[distNode].length; j++) {
            if (primaryArray[distNode][j] == sourceNode)
                dualPass[sourceNode] = true;
        }
        if (dualPass[sourceNode] != true) {
            primaryArray[sourceNode][number[sourceNode]] = distNode;
            number[sourceNode]++;
        }
        dualPass[sourceNode] = false;
        // end of code change
    }
    // ...

只有当我们获得更多信息时,才能回答您的第二个答案,我还不知道您的代码应该做什么。

1。从遵循命名约定开始。java中的变量名以小写字母开头。除此之外,还有一个地方可以让代码更清晰,而不是StackOverflow。2.我不知道你在第二点中问了什么,也不知道程序应该做什么。输出必须是每个成员的第二个-什么?我对这里输入/输出之间的关系感到非常困惑。
    // ...
    for (int i = 0; i < line; i++) {
        int sourceNode = input.nextInt();
        System.out.println("SourceNode: " + sourceNode);
        int distNode = input.nextInt();
        System.out.println("DistNode: " + distNode );
        input.nextLine();
        // you will get same response with following code instead all your if's:
        for (int j = 0; j < primaryArray[distNode].length; j++) {
            if (primaryArray[distNode][j] == sourceNode)
                dualPass[sourceNode] = true;
        }
        if (dualPass[sourceNode] != true) {
            primaryArray[sourceNode][number[sourceNode]] = distNode;
            number[sourceNode]++;
        }
        dualPass[sourceNode] = false;
        // end of code change
    }
    // ...