Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扫描仪输入问题_Java_Input_Magic Square - Fatal编程技术网

Java 扫描仪输入问题

Java 扫描仪输入问题,java,input,magic-square,Java,Input,Magic Square,如何从扫描仪接收用户的输入,然后将该输入放入2D数组中。这就是我所拥有的,但我认为这是不对的: public static void main(String[] args) { Scanner in = new Scanner(System.in); int [][] a = new int[row][col]; Scanner in = new Scanner(System.in); System.out.println("Enter a sequence o

如何从扫描仪接收用户的输入,然后将该输入放入2D数组中。这就是我所拥有的,但我认为这是不对的:

public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);
    int [][] a = new int[row][col];
    Scanner in = new Scanner(System.in);

    System.out.println("Enter a sequence of integers: ");
    while (in.hasNextInt())
    {
        int a[][] = in.nextInt();
        a [row][col] = temp;
        temp = scan.nextInt();
    }
    Square.check(temp);
}

我想做的是创建一个2D数组,然后创建一个幻方。我已经解决了布尔部分,我只需要帮助将用户的数字序列输入到数组中,这样布尔方法就可以测试数字。非常感谢所有的帮助

我不相信你的代码能按你所希望的方式工作。如果我正确理解了你的问题,我会这样做:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int [][] a = new int[row][col];

    for(int i = 0; i < row; i++) {
        for(int j = 0; j < col; j++) {
            System.out.print("Enter integer for row " + i + " col " + j + ": ");
            a[i][j] = in.nextInt();
        }
    }

    // Create your square here with the array
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int[][]a=新的int[行][col];
对于(int i=0;i

在循环中,
i
是当前行号,
j
是当前列号。它将要求用户输入每一行/列组合。

您可以使用它同时输入所有数字:

int [][] a = new int[3][3];
Scanner in = new Scanner(System.in);

System.out.println("Enter a sequence of integers: ");
int row=0,col=0;
while (in.hasNextInt())
{
     a [row][col++] = in.nextInt();
     if(col>=3){
         col=0;
         row++;
     }
     if(row>=3)break;
}
然后您可以输入:

123456789


填充数组。

首先需要查看行和列变量。您永远不会增加它们,因此所有内容都将放在同一位置的数组中。例如,如果平方为3x3,则前三个输入将进入[0][0]、[0][1]和[0][2],因此需要增加col变量。错误行为5。您正在第二次创建扫描仪。在第10行中,您使用的是未创建的变量。在第9行,你像在php中一样向数组添加值,但这里你没有指定数组长度和索引…你仍然需要声明和初始化行和列。@Austin Heerwagen我试图做的是要求用户输入n^2个值,以检查他们输入的是否是幻方。我不相信你是6号线要求的?除非我不理解代码,否则我对java非常陌生。但这不会使它变成3x3吗?为了给你一个易懂的例子,我已经使用了静态值。您可以按所需尺寸替换3个。如果您不知道用户将插入的数组的大小,请首先在控制台中使用以下命令询问他们:
console c=new console();inttabsize=Integer.parseInt(c.readLine(“数组大小:”)初始化数组时是否可以放置行和列:“int[]a=new int[3][3];”设置row和col=0,然后当用户输入一个数字时,它变为nxn。我不确定是否理解您的问题。。。如果在上述注释中使用我的代码,则可以使用
int[]]a=newint[tabSize][tabSize]
初始化数组。当我使用
introw=0,col=0我只是初始化新的临时变量来填充数组,将整数放在正确的索引中。它说构造函数控制台不可见