我的代码:
import java.util.Scanner;
class Test1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[][] num = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
System.out.print(num[i][j] + " ");
System.out.println();
}
}
答案出来了
0 0 0
0 0 0
0 0 0
但我想制作
1 0 0
0 1 0
0 0 1
答案 0 :(得分:1)
正如doc of Java中的解释,int初始化为值0.所以当你只声明你的数组没有设置特定值时,它只包含0.这就是你输出的原因
0 0 0
0 0 0
0 0 0
您需要先初始化数组,将值1放在所需的位置。在您的情况下,您想要创建一个单位矩阵,因此将1放在行和列具有相同索引的位置(在对角线中)。这应该是这样的:
for (int i = 0; i < n; i++)
num[i][i] = 1;
在打印数组之前放置此初始化,因此完整代码将如下所示:
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[][] num = new int[n][n];
for (int i = 0; i < n; i++)
num[i][i] = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
System.out.print(num[i][j] + " ");
System.out.println();
}