我对编程相对陌生,我遇到了一个问题,需要读取空间分隔的整数并将其输入到二维数组中,但我似乎不明白为什么我不能这样做。任何关于可能方法的提示都将有助于
例如。输入看起来像这个
2//尺寸
2 3//第1排
4 5//第2排
import java.io.*;
import java.util.*;
import java.lang.*;
public class HelloWorld{
public static void main(String []args){
Scanner sc= new Scanner(System.in);
System.out.println("Hello World");
System.out.println("Enter Dimension of Matrix");
int N= sc.nextInt();
int[][] m=new int [N][N];
for (int i=0;i<N;i++)
{ System.out.println("Enter Elements of row "+ i);
for(int j=0;j<N;j++ )
{
m[i]=sc.nextInt();
}
}
System.out.println(m);
}
}
我测试了上面的代码,并在控制台上得到了以下结果
HelloWorld.java:16:错误:不兼容的类型:int无法转换为int[]
m[i]=sc.nextInt()
^
首先,我想知道我的想法(方法)是对的吗?
第二,正确地做到这一点的可能方法是什么?
到此为止:
import java.io.*;
import java.util.*;
import java.lang.*;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Dimension of Matrix");
int N = sc.nextInt();
int[][] m = new int[N][N];
for (int i = 0; i < N; i++) {
System.out.println("Enter Elements of row " + i);
for (int j = 0; j < N; j++) {
m[i][j] = Integer.valueOf(sc.next());//replaced line with proper code
}
}
sc.close();
System.out.println(Arrays.deepToString(m));//use this api to print arrays
}
}
m是一个多维数组,意味着您必须指定m[i][?]。像这样
m[i][j]=sc.nextInt();
你的逻辑有点偏离,你想在第i行和其他第j列请求用户输入。试试这个,愉快地编码:)
for (int i=0;i<N;i++){
for(int j=0;j<N;j++){
System.out.println("Enter Elements of row "+ i);
m[i][j]=sc.nextInt();
}
}
for (int i=0;i<N;i++){
for(int j=0;j<N;j++){
System.out.print(m[i][j]);
}
System.out.println();
}