在二维数组中采用空格分隔的行输入



我对编程相对陌生,我遇到了一个问题,需要读取空间分隔的整数并将其输入到二维数组中,但我似乎不明白为什么我不能这样做。任何关于可能方法的提示都将有助于

例如。输入看起来像这个

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();
}

相关内容

  • 没有找到相关文章

最新更新