java - URI在线法官1435方矩阵I(演示错误)-LMLPHP

编写一个程序,该程序读取一个整数N(0≤N≤100),该整数与一个Bidimentional整数数组的顺序相对应,并根据上述示例构建Array。

输入项
输入由几个整数组成,每行一个,对应于要构建的数组的顺序。输入的结尾由零(0)表示。

输出量
对于每个整数输入,根据示例打印相应的数组。 (数组的值必须在大小为3的字段中格式化,并右对齐并用空格隔开。必须在数组的每一行的最后一个字符之后都不打印空格。必须在每个数组之后打印空白行) 。

这是我的代码。在这里,我总是出现演示错误。我知道空间或线不匹配时会出现演示错误。但是在这里我不明白为什么给我演示错误。

import java.util.Scanner;
import java.text.DecimalFormat;

public class FirstClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        DecimalFormat df = new DecimalFormat("0.0");
        Scanner input = new Scanner(System.in);

        int n;
        while((n =input.nextInt())!= 0){
        int newArray[][] = new int[n][n];
        int hn = n/2;
        if(n%2 == 1) {
            hn++;
        }
        int a = 0;
        int b = n-1;

        for (int l = 1; l <= hn; l++) {
        for (int i = a; i <= b; i++) {
            for (int j = a; j <= b; j++) {
                newArray[i][j] = l;
            }
        }
        a++;
        b--;
    }
        for (int i = 0; i < newArray.length; i++) {
            for (int j = 0; j < newArray.length; j++) {
                if (j == 0) {
                    System.out.print("  "+newArray[i][j]);
                }else {
                    System.out.print("   "+newArray[i][j]);
                }
            }
            System.out.println();
        }
        System.out.println();
        }
    }
}

最佳答案

问题出在您的打印逻辑上。尝试以下代码进行打印。我已经在在线裁判中检查了代码,并且可以正常工作!

for (int i = 0; i < newArray.length; i++) {
     for (int j = 0; j < newArray.length; j++) {
         if(j == 0) System.out.printf("%3d",newArray[i][j]);
         else System.out.printf(" %3d",newArray[i][j]);
     }
     System.out.println();
}


希望这可以解决您的问题。如果您什么都不懂,请告诉我。编码愉快!

关于java - URI在线法官1435方矩阵I(演示错误),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60202593/

10-13 21:30