1

5行5列の2D配列があり、すべて値0で埋められています。プログラムにこれを実行させるにはどうすればよいですか。

  1. []角かっこなしで、2〜5のように行と列の任意のランダムな組み合わせを入力します。私のプログラムが理解できるようにするには、2-5と入力するだけで十分です。つまり、行2、列5を意味します。

  2. 入力した値を行と列の組み合わせで上記の配列に割り当てます。

これは私がこれまでに得たものです。ご覧のとおり、私はすべての配列要素の値を出力することしかできませんでした。

import java.util.*;

public class stink {

    public static void main(String[]args){
        int[][] kuk = new int[5][5];
        printMatrix(kuk);
    }

    public static void printMatrix(int[][] matrix)
    {
        for (int row = 0; row < matrix.length; row++)
        {
            for (int col = 0; col < matrix[row].length; col++)
                System.out.printf("%2d", matrix[row][col]);
            System.out.println();
        }
    }
}
4

3 に答える 3

2

以下のコードのように、Java API の Scanner クラスを使用して、ユーザーからの入力を取得する必要があります。2X3 配列を 2-3 のように渡したい場合は、入力を区切り記号で渡します。「-」は区切り記号です。StringおよびScanner Java APIのリンクは次のとおりです。

        Scanner sc = new Scanner(System.in);
    System.out.println("please enter two numbers");
    String inputs = sc.next();
    int a=Integer.valueOf(inputs.split("-")[0]);
    int b=Integer.valueOf(inputs.split("-")[1]);;
    System.out.println(a + " " + b);
    int[][] x = new int[a][b];
    System.out.println(x.length);
于 2012-09-22T22:45:19.520 に答える
0

これはコピー/貼り付けの準備が整った回答ではありませんが、少なくともこれをどのように処理できるかを示す必要があります。

        int rows = 0;
        int columns = 0;
        Scanner scan = new Scanner(System.in);
        System.out.println("Rows: ");
        rows = scan.nextInt();
        System.out.println("Columns: ");
        columns = scan.nextInt();           
        int[][] kuk = new int[rows][columns];
于 2012-09-22T22:36:55.490 に答える
0
import java.util.*;
public class stink
{
    public static void main(String[]args)
    {
        int[][] kuk = new int[5][5];
        // Where x and y are keys, integer is the integer you want to push
        pushIntoMatrix(kuk, x, y, integer);
        //kuk = pushIntoMatrix(kuk, x, y, integer); // Use if you want the method to return a value.
    }
    public static void pushIntoMatrix(int[][] matrix, int x, int y, int integer)
    //public static int[][] pushIntoMatrix(int[][] matrix, int x, int y, int integer) // Use if you want to return the array.
    {
        matrix[x][y] = integer;
        //return matrix; // Use if you want to return the array.
    }
}

ご存知のように、プリミティブではない Java のデータ型は参照であるため、kuk 配列をメソッドに渡すと、実際の配列参照に影響します。必要に応じて pushIntoMatrix() に return を設定できますが、必須ではありません。

于 2012-09-22T22:37:37.637 に答える