扫描仪二维阵列(n x n) import java.util.Scanner; 类Test1{ 公共静态void main(字符串[]args){ 扫描仪扫描=新扫描仪(System.in); int n=scan.nextInt(); int[][]num=新的int[n][n]; 对于(int i=0;i

扫描仪二维阵列(n x n) import java.util.Scanner; 类Test1{ 公共静态void main(字符串[]args){ 扫描仪扫描=新扫描仪(System.in); int n=scan.nextInt(); int[][]num=新的int[n][n]; 对于(int i=0;i,java,arrays,for-loop,java.util.scanner,Java,Arrays,For Loop,Java.util.scanner,} 我想做些什么 1 0 0 0 1 0 0 0 1 但我的回答是这样的 0 0 0 0 0 0 0 0 0看起来您的代码正在跳出内部循环,即使用j作为变量的循环。初始化j=0,然后如果j

}

我想做些什么 1 0 0 0 1 0 0 0 1 但我的回答是这样的 0 0 0 0 0 0
0 0 0

看起来您的代码正在跳出内部循环,即使用
j
作为变量的循环。初始化
j=0
,然后如果j<0,它将执行。但是,0<0为false,因此它从不通过内部循环进行迭代。试着把那行改成
for(int j=0;j
我希望您能得到您想要的结果。

您需要循环遍历2d数组中的所有元素,而不仅仅是第0个元素。请参见修改的循环

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 < 0; j++)
            if (i == j)
                num[i][j] = 1;
            else
                num[i][j] = 0;

    for (int[] a : num) {
        for (int b : a)
            System.out.print(b + " ");
        System.out.println();
    }
}
import java.util.Scanner;
公共类Test1{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int n=scan.nextInt();
int[][]num=新的int[n][n];
对于(int i=0;i
用于(int j=0;j<0;j++)
-j<0?在您的代码上键入备注:即使在可能的情况下,您也不应忽略围绕
if
else
for
,。。。这可能会在以后编辑/扩展代码时引入令人讨厌的错误。此外,您想要的(100010001)看起来不像2维数组。你的代码将生成一个矩阵,在对角线的中心有1。我没有看到我以为我把它放在了n而不是0中
import java.util.Scanner;
public 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++)
            if (i == j)
                num[i][j] = 1;
            else
                num[i][j] = 0;

    for (int[] a : num) {
        for (int b : a)
            System.out.print(b + " ");
        System.out.println();
    }
}
}