编写一个程序,该程序读取一个整数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/